var i: integer; rs: TResourceStream; begin for i:= Low(WaveArr) to High(WaveArr) do begin Case WaveArr[i] of 0: rs := TResourceStream.Create(HInstance, 'sound0', 'WAVE'); 1: rs := TResourceStream.Create(HInstance, 'sound1', 'WAVE'); 2: rs := TResourceStream.Create(HInstance, 'sound2', 'WAVE'); 3: rs := TResourceStream.Create(HInstance, 'sound3', 'WAVE'); 4: rs := TResourceStream.Create(HInstance, 'sound4', 'WAVE'); 5: rs := TResourceStream.Create(HInstance, 'sound5', 'WAVE'); end; sndPlaySound(rs.Memory, SND_ASYNC or SND_MEMORY); rs.Free; end; end; // 比如说,你的WaveArr是 [0,2,5],就连续执行播放那几个声音 (WaveArr 是 Array of integer)
我试一下不可以呀,sndPlaySound(rs.Memory, SND_ASYNC or SND_MEMORY);不能用,可是sndPlaySound(rs.Memory,hinstance SND_ASYNC or SND_MEMORY);默认播放数组里第一个声音,而且无法实现WaveArr[0,2,5]这个播放方式,请再指点一下。 顺便问一下,mp3在资源里也保存为wave格式,我引用wave的格式sndPlaySound('name',hinstance SND_ASYNC or SND_RESOURCE);引用mp3怎么没有播放声音?
var
i: integer;
rs: TResourceStream;
begin
for i:= Low(WaveArr) to High(WaveArr) do
begin
Case WaveArr[i] of
0: rs := TResourceStream.Create(HInstance, 'sound0', 'WAVE');
1: rs := TResourceStream.Create(HInstance, 'sound1', 'WAVE');
2: rs := TResourceStream.Create(HInstance, 'sound2', 'WAVE');
3: rs := TResourceStream.Create(HInstance, 'sound3', 'WAVE');
4: rs := TResourceStream.Create(HInstance, 'sound4', 'WAVE');
5: rs := TResourceStream.Create(HInstance, 'sound5', 'WAVE');
end;
sndPlaySound(rs.Memory, SND_ASYNC or SND_MEMORY);
rs.Free;
end;
end;
// 比如说,你的WaveArr是 [0,2,5],就连续执行播放那几个声音 (WaveArr 是 Array of integer)
顺便问一下,mp3在资源里也保存为wave格式,我引用wave的格式sndPlaySound('name',hinstance SND_ASYNC or SND_RESOURCE);引用mp3怎么没有播放声音?