装载格式信息的结构有:


TWaveFormat =  wFormatTag: Word;nChannels: Word;nSamplesPerSec: DWORD;nAvgBytesPerSec: DWORD;nBlockAlign: Word;
;TPCMWaveFormat = wf: TWaveFormat;wBitsPerSample: Word;
;TWaveFormatEx =  wFormatTag: Word;       nChannels: Word;        nSamplesPerSec: DWORD;  nAvgBytesPerSec: DWORD; nBlockAlign: Word;      wBitsPerSample: Word;   cbSize: Word;
;

能看出它们是依次递增一个字段, 并且也是 Wave 文件的一个构成部分; 现在要做的就是从 Wave 文件中把它们取出来.



获取函数及测试代码:


 Unit1;Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;TForm1 = (TForm)Memo1: TMemo;Button1: TButton;Button1Click(Sender: TObject);;Form1: TForm1;MMSystem;GetWaveFmt(FilePath: ;  fmt: TWaveFormatEx): Boolean;hFile: HMMIO;ckiRIFF,ckiFmt: TMMCKInfo;Result := False;hFile := mmioOpen(PChar(FilePath), , MMIO_READ);hFile =   Exit;ZeroMemory(@ckiRIFF, SizeOf(TMMCKInfo));ZeroMemory(@ckiFmt, SizeOf(TMMCKInfo));ZeroMemory(@fmt, SizeOf(TWaveFormatEx));     ckiFmt.ckid := mmioStringToFOURCC(, ); mmioDescend(hFile, @ckiRIFF, , MMIO_FINDRIFF);(ckiRIFF.ckid = FOURCC_RIFF) (ckiRIFF.fccType = mmioStringToFOURCC(,)) (mmioDescend(hFile, @ckiFmt, @ckiRIFF, MMIO_FINDCHUNK) = MMSYSERR_NOERROR) Result := (mmioRead(hFile, @fmt, ckiFmt.cksize) = ckiFmt.cksize);
;TForm1.Button1Click(Sender: TObject);FilePath = ;WaveFormat: TWaveFormatEx;GetWaveFmt(FilePath, WaveFormat)   Memo1.Lines Clear;Add(Format(, [WaveFormat.wFormatTag]));Add(Format(, [WaveFormat.nChannels]));Add(Format(, [WaveFormat.nSamplesPerSec]));Add(Format(, [WaveFormat.nAvgBytesPerSec]));Add(Format(, [WaveFormat.nBlockAlign]));Add(Format(, [WaveFormat.wBitsPerSample]));Add(Format(, [WaveFormat.cbSize]));;;.

转载于:https://www.cnblogs.com/lzh-boy/archive/2010/01/13/1646578.html

Wave 文件(5): 获取 Wave 文件的格式信息相关推荐

  1. php获取文件夹中的音乐文件_PHP获取音频文件信息的方法

    本篇文章主要介绍PHP获取音频文件信息的方法,感兴趣的朋友参考下,希望对大家有所帮助. 项目需求:现在有一个音频文件上传的功能,在上传后PHP需要获取这个音频文件的相关信息,例如:时长等,由于这个文件 ...

  2. python获取文件夹下文件_Python 获取指定文件夹下的目录和文件的实现

    经常有需要扫描目录,对文件做批量处理的需求,所以对目录处理这块做了下学习和总结.Python 中扫描目录有两种方法:os.listdir 和 os.walk. 一.os.listdir 方法 os.l ...

  3. cordova flie文件目录_Cordova - 访问www目录下文件(获取www文件夹路径)

    我们使用Cordova开发时,会将html页面或着一些图片等资源文件放在 www 目录下.在程序中,如果我们想要获取到保存在 www 文件夹中的文件,方法如下. 1,获取www目录路径 (1)首先我们 ...

  4. python打开指定文件-Python获取指定文件夹下的文件

    本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名. 一.os.walk() 模块os中的walk()函数可以遍历文件夹下所有的文件. os.walk(top, t ...

  5. python解析apk文件_Python获取apk文件URL地址实例

    Python获取apk文件URL地址实例 更新时间:2013年11月01日 10:22:39   作者:   我要评论 需要提取apk文件的特定URL地址的朋友可以看一下这个代码实例. 工作中经常需要 ...

  6. php curl 采集文件,curl获取远程文件内容

    /** 获取远程文件内容 @param $url 文件http地址 */ function fopen_url($url) { if (function_exists('file_get_conten ...

  7. Android 播放raw文件夹下音频文件,本地MP3文件播放,播放云端MP3文件,获取MP3文件播放时长

    1.复制音频文件到raw文件夹下 2.实例化音频文件 private final MediaPlayer.OnCompletionListener beepListener = new MediaPl ...

  8. python下载bt文件_python获取bt种子的详细信息

    bt种子具体文件结构如下: 全部内容必须都为bencoding编码类型. 整个文件为一个字典结构,包含如下关键字 announce:tracker服务器的URL(字符串) announce-list( ...

  9. java 读取手机文件_Android获取手机文件夹及文件列表的方法

    先看看效果图: package wuwang.tools.utils; import java.io.File; import java.io.FileInputStream; import java ...

最新文章

  1. webfocus在移动终端上的应用DEMO
  2. golang 覆盖写入文件 简介
  3. 【学习】Android开入门教程
  4. TableView didSelectRowAtIndexPath 不执行
  5. oracle java 绑定变量的值_Oracle SQL调优之绑定变量用法简介
  6. vue.js 2.x 能否设置某个组件不被keep-alive 的解决方案
  7. java jsp ajax_ajax的json传值方式在jsp页面中的应用
  8. 证书体系: PFX 文件格式解析
  9. 前端传递json,后端应该怎样接收呢?
  10. java class和this_转:java 类名 this 的使用
  11. 许可证密钥_如何激活和停用NVivo的许可证
  12. 计算机网络技术人员介绍,计算机网络技术专业介绍2021 计算机网络技术专业就业方向及前景...
  13. SpringCloud学习笔记024---SpringBoot集成Lucene实现全文检索_分词_索引_更新_删除文档_词条搜索_多条件查询
  14. Ubuntu中创建、删除、更改、移动文件的命令
  15. Centos上PostgreSQL9.3的安装
  16. su必备插件_会了这10个插件,Sketchup也能玩飞起来!
  17. 计蒜客 17119 Trig Function(切比雪夫多项式)
  18. linux设备驱动之 i2c设备驱动 at24c08驱动程序分析
  19. stm32f207/stm32f407擦除内部flash讲解
  20. bat 实现笔记本键盘开关

热门文章

  1. 前端:分享一些实用的JS代码片段
  2. 真相了!敲代码时,程序员戴耳机究竟在听什么?
  3. Java项目构建基础:统一结果,统一异常,统一日志
  4. ping不通docker_初识docker
  5. json为全局变量 vue_vue 设置全局变量、指定请求的 baseurl
  6. main spring启动_SpringBoot学习(一):为什么main方法启动类需要放在项目根目录...
  7. 50行代码串行Promise,koa洋葱模型原来这么有趣?
  8. 学习尤雨溪写的 Vue3 源码中的简单工具函数
  9. tomcat闪退解决方案
  10. Mysql Hunter