关于windows音源的古老文章一篇

《delphi中的MP3回放》
作者:Simon Lau


如果你还没有听说过MP3那种音乐格式,那你与世隔绝不下两年了。一张CD碟,每一分钟,就要占据硬盘10M,故一张碟60分钟的,就要用600M。MP3则对WAV进行了压缩,一些听众听不到的冗余信息都被剪除了,比如一些过高的频段,所以MP3能节省容量。无论如何,它是压缩文件,既然如此,就要解析成普通数据。我没有时间讲细节,再说我自己也没彻底搞清楚。有兴趣深究者,不妨参考stanislav holenda的《delphi中的数字音响》。
如何解析MP3?
如果你是一个设计头头,你可以去MPEG小组,找那些发明了MP3编码的人。阅读相关资料,然后你可以编写一套算法,或许是一个发声系统,可以回放的。要不,你若像我一样笨,你可以到www.xaudio.com网,去下载他们的音频软件,免费的呢。
如果你求诸于VCL,嘿,你可以在顷刻间写完子程序。这个控件对delphi2(及更高版本)兼容,允许使用xaudiodll.但是,它适用范围不广。
首先,你要新建一个窗体,把xaudioplayer控件插入其中。还有一个按钮。按钮的响应函数如下:
procedure tform1.button1click(sender:tobject);
begin
 xaudioplayer1.inputopen('mymp3.mp3');  //单引号中的文件名请自行更改
 xaudioplayer1.play;
end;
这样,你就有了一个MP3播放器。
欲停止播放,请用函数xaudioplayer1.stop;
欲暂停播放,请用函数xaudioplayer1.pause;
当播放器用完后,你要关机。
procedure tform.formdestroy(sender:tobject);
begin
 xaudioplayer.outputreset;   //清除声音缓存
 xaudioplayer.exit;          //关闭IO设备
真的很简单,你不觉得吗?不幸的是,xaudioplayer控件很难觅。它在xaudio.dll中。那里有控制播放器对象的各种方法。你可以参考sample.dpr。
好累,就说到这里吧。今后如果知识更新,或许我会新写文章的。
http://www.cs.ucl.ac.uk/students/s.lau
s.lau@cs.ucl.ac.uk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值