我目前只能通过将波形文件放在已编译的 exe 旁边来播放背景声音。但我实际上想要一个包含波形文件的静态可执行文件。这在Delphi XE2中可能吗?
这是我的代码:
SndPlaySound('.\Raw.wav', SND_ASYNC or SND_LOOP);
#This will play the Raw.wav that is next to my program.
您可以添加SND_MEMORY http://msdn.microsoft.com/en-us/library/aa909803.aspx标志,并传递一个TResourceStream.Memory
指针作为第一个参数。
首先,使用XE2的Project->Resources and Images
用于添加新资源的菜单项。为其指定 .wav 文件的路径和文件名,该文件的资源类型为RC_DATA
(它不在下拉列表中,但您可以手动输入),以及您可以在运行时引用它的资源名称。 (在我的示例中,我使用C:\Microsoft Office\Office12\MEDIA\APPLAUSE.WAV
,并为其指定资源名称APPLAUSE
.)
procedure TForm2.Button1Click(Sender: TObject);
var
Res: TResourceStream;
begin
Res := TResourceStream.Create(HInstance, 'APPLAUSE', 'RC_DATA');
try
Res.Position := 0;
SndPlaySound(Res.Memory, SND_MEMORY or SND_ASYNC or SND_LOOP);
finally
Res.Free;
end;
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)