我有这个简单的片段,我已经连接到一个按钮,它应该同时播放两个声音:
[testSound1,Fs1] = audioread('testAudio1.wav');
sound(testSound1,Fs1);
[testSound2,Fs2] = audioread('testAudio2.wav');
sound(testSound2,Fs2);
按下按钮时声音会按预期播放,但现在我也想实现一个停止按钮。问题是这个停止按钮只能停止第一个音频testAudio1.wav
而第二个音频仍然会播放。我试过了clear sound
但是这个都停了。我需要像stop(this)
这样的东西。这可以以某种方式完成吗?
非常感谢帮助!
答案 0 :(得分:1)
sound
默认播放整个信号,清除将同时停止。由于您使用audioread
,请分别为两个信号构建audioplayer
对象,然后使用play
方法播放任一声音。您还可以使用stop
方法停止其中任何一个:
% Set up audioplayers for both sounds
sound1 = audioplayer(testSound1, Fs1);
sound2 = audioplayer(testSound2, Fs2);
% Play the sounds
play(sound1);
play(sound2);
% Do something...
% ...
% ...
% Stop the sounds
stop(sound1);
stop(sound2);
请注意,上面只是一个例子。要播放声音,请使用play
方法并停止声音,请使用stop
方法。对于您的情况,您只想停止第一个声音,因此只需执行stop(sound1);
而不是stop(sound2);
。