操作Wave 文件系列
xiangyu5945
屁颠屁颠的生活
展开
-
(2): 判断一个文件是否是 Wave 文件
Wave 文件的前 12 个字节可以这样描述:TRiff = record ckId : DWORD; {RIFF} ckSize : DWORD; {文件大小, 不包括前 8 个字节} fccType : DWORD; {WAVE} end; 我们读出文件的前 12 个字节进行判断, 就基本可以确认它是不是 Wave 文件.uses MMSystem, I转载 2010-04-24 16:05:00 · 548 阅读 · 0 评论 -
(5): 获取 Wave 文件的格式信息
装载格式信息的结构有:TWaveFormat = packed record wFormatTag: Word; nChannels: Word; nSamplesPerSec: DWORD; nAvgBytesPerSec: DWORD; nBlockAlign: Word; end; TPCMWaveFormat = record wf: TWaveFormat; wBit转载 2010-04-24 20:57:00 · 471 阅读 · 0 评论 -
(1): 关于 Wave 文件的基础知识与文件格式
最近准备学习 DirectSound、DirectMusic、DirectShow, 但刚一接触就碰到了关于 Wave 文件的诸多问题, 只好先回头学学 Wave 文件. Wave 文件的基础知识经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等.44100HZ 16bit stereo : 每秒钟有 44100 次采样, 采样数据用转载 2010-04-24 15:37:00 · 1132 阅读 · 0 评论 -
(2): 判断一个文件是否是 Wave 文件
Wave 文件的前 12 个字节可以这样描述:TRiff = record ckId : DWORD; {RIFF} ckSize : DWORD; {文件大小, 不包括前 8 个字节} fccType : DWORD; {WAVE} end; 我们读出文件的前 12 个字节进行判断, 就基本可以确认它是不是 Wave 文件.uses MMSystem, I转载 2010-04-24 17:05:00 · 429 阅读 · 0 评论 -
(7): 建立一个空的 Wave 文件(三种方法)
unit Unit1; unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormCreate(Sender: TOb转载 2010-04-24 21:17:00 · 830 阅读 · 0 评论 -
(4): 获取 Wave 文件主块与子块的信息
有两个相关的结构体: TMMIOInfo、TMMCKInfo. TMMIOInfo 是多媒体文件打开后的状态信息, mmioOpen 函数的第二个参数就是这个结构的指针; 以后还可以通过 mmioGetInfo、mmioSetInfo 使用它; 不过暂时还没有用到它. 现在先用到了 TMMCKInfo, 这是文件内部 "块" 的信息, 构成如下:TMMCKInfo = rec转载 2010-04-24 20:56:00 · 468 阅读 · 0 评论 -
(6): 获取 Wave 文件的波形数据
读取函数及测试代码:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) 读取函数及测试代码:unit Unit1;原创 2010-04-24 20:59:00 · 542 阅读 · 0 评论 -
(8): 使用 TMediaPlayer 录制 wav 文件
TMediaPlayer 录音是基于一个已存在的 wav 文件, 上次建立空白 wav 的函数可派上用场了. TMediaPlayer 的功能是基于 MCI 的, 都是该淘汰的东西了, 只是简单了解下. 接下来还要学习用 waveIn...系列函数录音、用 DirectSound 录音.unit Unit1; interface uses Windows, Messages,转载 2010-04-24 21:18:00 · 454 阅读 · 0 评论