播放两个声音时是否可以设置停止播放的声音?

时间:2016-10-30 22:55:56

标签: matlab audio

我有这个简单的片段,我已经连接到一个按钮,它应该同时播放两个声音:

[testSound1,Fs1] = audioread('testAudio1.wav');
sound(testSound1,Fs1);
[testSound2,Fs2] = audioread('testAudio2.wav');
sound(testSound2,Fs2);

按下按钮时声音会按预期播放,但现在我也想实现一个停止按钮。问题是这个停止按钮只能停止第一个音频testAudio1.wav而第二个音频仍然会播放。我试过了clear sound但是这个都停了。我需要像stop(this)这样的东西。这可以以某种方式完成吗?

非常感谢帮助!

1 个答案:

答案 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);