Wave 文件(5): 获取 Wave 文件的格式信息
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 文件的格式信息相关推荐
- php获取文件夹中的音乐文件_PHP获取音频文件信息的方法
本篇文章主要介绍PHP获取音频文件信息的方法,感兴趣的朋友参考下,希望对大家有所帮助. 项目需求:现在有一个音频文件上传的功能,在上传后PHP需要获取这个音频文件的相关信息,例如:时长等,由于这个文件 ...
- python获取文件夹下文件_Python 获取指定文件夹下的目录和文件的实现
经常有需要扫描目录,对文件做批量处理的需求,所以对目录处理这块做了下学习和总结.Python 中扫描目录有两种方法:os.listdir 和 os.walk. 一.os.listdir 方法 os.l ...
- cordova flie文件目录_Cordova - 访问www目录下文件(获取www文件夹路径)
我们使用Cordova开发时,会将html页面或着一些图片等资源文件放在 www 目录下.在程序中,如果我们想要获取到保存在 www 文件夹中的文件,方法如下. 1,获取www目录路径 (1)首先我们 ...
- python打开指定文件-Python获取指定文件夹下的文件
本文采用os.walk()和os.listdir()两种方法,获取指定文件夹下的文件名. 一.os.walk() 模块os中的walk()函数可以遍历文件夹下所有的文件. os.walk(top, t ...
- python解析apk文件_Python获取apk文件URL地址实例
Python获取apk文件URL地址实例 更新时间:2013年11月01日 10:22:39 作者: 我要评论 需要提取apk文件的特定URL地址的朋友可以看一下这个代码实例. 工作中经常需要 ...
- php curl 采集文件,curl获取远程文件内容
/** 获取远程文件内容 @param $url 文件http地址 */ function fopen_url($url) { if (function_exists('file_get_conten ...
- Android 播放raw文件夹下音频文件,本地MP3文件播放,播放云端MP3文件,获取MP3文件播放时长
1.复制音频文件到raw文件夹下 2.实例化音频文件 private final MediaPlayer.OnCompletionListener beepListener = new MediaPl ...
- python下载bt文件_python获取bt种子的详细信息
bt种子具体文件结构如下: 全部内容必须都为bencoding编码类型. 整个文件为一个字典结构,包含如下关键字 announce:tracker服务器的URL(字符串) announce-list( ...
- java 读取手机文件_Android获取手机文件夹及文件列表的方法
先看看效果图: package wuwang.tools.utils; import java.io.File; import java.io.FileInputStream; import java ...
最新文章
- webfocus在移动终端上的应用DEMO
- golang 覆盖写入文件 简介
- 【学习】Android开入门教程
- TableView didSelectRowAtIndexPath 不执行
- oracle java 绑定变量的值_Oracle SQL调优之绑定变量用法简介
- vue.js 2.x 能否设置某个组件不被keep-alive 的解决方案
- java jsp ajax_ajax的json传值方式在jsp页面中的应用
- 证书体系: PFX 文件格式解析
- 前端传递json,后端应该怎样接收呢?
- java class和this_转:java 类名 this 的使用
- 许可证密钥_如何激活和停用NVivo的许可证
- 计算机网络技术人员介绍,计算机网络技术专业介绍2021 计算机网络技术专业就业方向及前景...
- SpringCloud学习笔记024---SpringBoot集成Lucene实现全文检索_分词_索引_更新_删除文档_词条搜索_多条件查询
- Ubuntu中创建、删除、更改、移动文件的命令
- Centos上PostgreSQL9.3的安装
- su必备插件_会了这10个插件,Sketchup也能玩飞起来!
- 计蒜客 17119 Trig Function(切比雪夫多项式)
- linux设备驱动之 i2c设备驱动 at24c08驱动程序分析
- stm32f207/stm32f407擦除内部flash讲解
- bat 实现笔记本键盘开关
热门文章
- 前端:分享一些实用的JS代码片段
- 真相了!敲代码时,程序员戴耳机究竟在听什么?
- Java项目构建基础:统一结果,统一异常,统一日志
- ping不通docker_初识docker
- json为全局变量 vue_vue 设置全局变量、指定请求的 baseurl
- main spring启动_SpringBoot学习(一):为什么main方法启动类需要放在项目根目录...
- 50行代码串行Promise,koa洋葱模型原来这么有趣?
- 学习尤雨溪写的 Vue3 源码中的简单工具函数
- tomcat闪退解决方案
- Mysql Hunter