如何在MATLAB中停止声音?

时间:2009-11-16 13:41:39

标签: matlab

使用例如:

播放声音时
sound(x,fs);

我有时偶然会玩错了。如果x的长度很长,我现在试着等到声音完成。有关如何“中止”播放的任何建议?我已经尝试了

sound(mute,fs); % Mute is a short vector containing all zeroes

但那没用。我顺便使用Windows。

更新:
kigurai提出的以下解决方案似乎可以解决问题:

sound(x,fs); % Start the audio

现在通过

杀死音频
clear playsnd

4 个答案:

答案 0 :(得分:56)

尝试此命令绝对有效!!

清晰的声音

答案 1 :(得分:28)

Mathworks说(这也适用于sound),

  

MATLAB中没有任何功能   可以暂停或停止一次音频播放   由WAVPLAY发起。而不是使用   WAVPLAY,另一种选择是创造   一个AUDIOPLAYER对象。这类   对象有允许的方法   暂停,恢复和停止   音频播放。例如:

player = audioplayer(Y, Fs)

% start the playback
play(player);

% pause the playback
pause(player);

% resume the playback
resume(player)

% stop the playback
stop(player)

答案 2 :(得分:25)

从未使用过“sound()”但是当我使用wavplay(...,...,'async')播放音频时,我可以通过发出

来停止声音
clear playsnd

也许这适用于sound()? 注意:这是异步播放时。对于同步播放,我假设CTRL-C应该打破它,但我上次尝试时遇到了wavplay()的问题。

答案 3 :(得分:7)

使用audioplayer对象 - 它可以让您完全控制对声音的处理方式。即:

player = audioplayer(x, fs);
play(player)   % start the player
stop(player)   % stop whenever you like...

Audioplayer有很多其他有用的东西: http://www.mathworks.com/help/techdoc/ref/audioplayer.html