在此Website我找到了如何将音乐添加到.res文件中,然后在delphi .exe中使用它。这是启动WAVE歌曲的代码。
procedure TForm2.FormActivate(Sender: TObject);
var
hFind, hRes: THandle;
Song: PChar;
begin
hFind := FindResource(HInstance, 'SonicSong', 'WAVE') ;
if hFind <> 0 then begin
hRes:=LoadResource(HInstance, hFind) ;
if hRes <> 0 then begin
Song:=LockResource(hRes) ;
if Assigned(Song) then SndPlaySound(Song, snd_ASync or snd_Memory) ;
UnlockResource(hRes) ;
end;
FreeResource(hFind) ;
end;
end;
所以我想知道的是如何在不关闭应用程序的情况下停止播放音乐?
答案 0 :(得分:6)
调用sndPlaySound
函数,并将第一个参数设置为nil
,这会导致当前播放的声音停止。由于第二个参数使用SND_ASYNC
标志,因为正如参考所示,您必须使用此标志来终止您在代码中播放的异步播放的波形声音:
sndPlaySound(nil, SND_ASYNC);
答案 1 :(得分:2)
您可以使用SND_RESOURCE
而非PlaySound()
的{{1}}功能简化代码:
sndPlaySound()
答案 2 :(得分:0)
测试:
PlaySound(nil, 0, 0);