摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button... 阅读全文
posted @ 2010-01-13 15:13 架构师聊技术 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 这两个参数也都是可以 Get(waveOutGetPlaybackRate、waveOutGetPitch)设备默认的播放速度是 $00010000, 此值乘以 2 是快一倍, 除以 2 是慢一倍; 最快可到 $000F8000.设备默认的音高参数是 $00010000, 此值乘以 2 是高一倍, 除以 2 是低一倍; 最高可到 $000F8000.可能有很多声卡不支持, 我的 IBM 手提就不支... 阅读全文
posted @ 2010-01-13 15:12 架构师聊技术 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 左右声道的音量是单调的; 表示音量的 32 位整数的低 16 位是左声道、高 16 位是右声道. 代码文件: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TFor... 阅读全文
posted @ 2010-01-13 15:12 架构师聊技术 阅读(607) 评论(0) 推荐(0) 编辑
摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton... 阅读全文
posted @ 2010-01-13 15:11 架构师聊技术 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 使用窗口接受音频设备发出的消息: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton;... 阅读全文
posted @ 2010-01-13 15:10 架构师聊技术 阅读(344) 评论(0) 推荐(0) 编辑
摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) ListBox1: TListBox; ListBox2: TListBox; Button1: TBu... 阅读全文
posted @ 2010-01-13 15:10 架构师聊技术 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 下面是使用低级音频函数播放 wav 的两个方法, 对这个感兴趣的人恐怕很少, 免注释了.使用窗口接受音频输出设备的消息: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = clas... 阅读全文
posted @ 2010-01-13 15:09 架构师聊技术 阅读(460) 评论(0) 推荐(0) 编辑
摘要: TMediaPlayer 录音是基于一个已存在的 wav 文件, 上次建立空白 wav 的函数可派上用场了.TMediaPlayer 的功能是基于 MCI 的, 都是该淘汰的东西了, 只是简单了解下.接下来还要学习用 waveIn...系列函数录音、用 DirectSound 录音. unit Unit1;interfaceuses Windows, Messages, SysUtils, Va... 阅读全文
posted @ 2010-01-13 15:09 架构师聊技术 阅读(186) 评论(0) 推荐(0) 编辑
摘要: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); end;var Form1: TForm1;impl... 阅读全文
posted @ 2010-01-13 15:08 架构师聊技术 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 读取函数及测试代码: unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(... 阅读全文
posted @ 2010-01-13 15:07 架构师聊技术 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 有两个相关的结构体: TMMIOInfo、TMMCKInfo.TMMIOInfo 是多媒体文件打开后的状态信息, mmioOpen 函数的第二个参数就是这个结构的指针.现在先用到了 TMMCKInfo, 这是文件内部 "块" 的信息, 构成如下:TMMCKInfo = record ckid: FOURCC; {块标识} cksize: DWORD; {块大小} fccType: FOURC... 阅读全文
posted @ 2010-01-13 15:06 架构师聊技术 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 装载格式信息的结构有: TWaveFormat = packed record wFormatTag: Word; nChannels: Word; nSamplesPerSec: DWORD; nAvgBytesPerSec: DWORD; nBlockAlign: Word;end;TPCMWaveFormat = record wf: TWaveFormat; wBitsPer... 阅读全文
posted @ 2010-01-13 15:06 架构师聊技术 阅读(317) 评论(0) 推荐(0) 编辑
摘要: Wave 文件的前 12 个字节可以这样描述: TRiff = record ckId : DWORD; {'RIFF'} ckSize : DWORD; {文件大小, 不包括前 8 个字节} fccType : DWORD; {'WAVE'}end;我们读出文件的前 12 个字节进行判断, 就基本可以确认它是不是 Wave 文件. uses MMSystem, IOUtils; {这里准... 阅读全文
posted @ 2010-01-13 15:05 架构师聊技术 阅读(199) 评论(0) 推荐(0) 编辑
摘要: mmio 系列函数用于 Wave 等多媒体文件的 I/O 操作, 相关函数有: mmioOpenmmioClosemmioReadmmioWritemmioFlushmmioSeekmmioRenamemmioGetInfommioSetInfommioCreateChunkmmioAscendmmioDescendmmioAdvancemmioSetBuffermmioStringToFOURC... 阅读全文
posted @ 2010-01-13 15:05 架构师聊技术 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 最近准备学习 DirectSound、DirectMusic、DirectShow, 但刚一接触就碰到了关于 Wave 文件的诸多问题, 只好先回头学学 Wave 文件. Wave 文件的基础知识原文地址(http://www.cnblogs.com/del/archive/2009/11/06/1597088.html)经常见到这样的描述: 44100HZ 16bit stereo 或者 220... 阅读全文
posted @ 2010-01-13 15:04 架构师聊技术 阅读(309) 评论(0) 推荐(0) 编辑