如何在delphi中播放未压缩的wav文件?
我的意思是逐字节读取wav文件并将数据直接发送到扬声器。
我搜索了互联网,发现了一些在指定时间内播放声音的功能。例如:myplaysoundfunc(1200, 100)
。这将播放1200Hz的声音100毫秒。
但播放wav文件更复杂。我对Samples per second
和bits per samples
有疑问。
答案 0 :(得分:1)
您不需要任何组件或外部库。
完整的应用程序源代码,取自http://rosettacode.org/wiki/Play_recorded_sounds#Delphi:
{$APPTYPE CONSOLE}
program PlayRecordedSounds;
uses MMSystem;
begin
sndPlaySound('SoundFile.wav', SND_NODEFAULT OR SND_ASYNC);
end.
使用这些参数,当您的应用程序继续运行时,声音会在后台播放。
如果您使用SND_SYNC
而不是SND_ASYNC
,则应用程序会在继续之前等待声音完成。
如果添加SND_LOOP
,也可以让声音循环播放。
除非您添加SND_NOSTOP
,否则此过程会停止您之前播放的声音。这样,旧的声音就会继续播放。
注意: