2009-11-16 1714 views
33

当播放使用e.g一个声音:如何在MATLAB中停止声音?

sound(x,fs); 

我有时意外弹错一个。如果x的长度很长,我现在试着等到声音完成。有关如何“中止”播放的任何建议?我已经试过

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

但是这并没有奏效。顺便说一句,我正在使用Windows。

UPDATE:
通过kigurai提出了以下解决方案似乎这样的伎俩:通过

clear playsnd 
+0

我假设你已经尝试过ctrl-c但是没有工作? – Shaka 2009-11-16 14:08:58

+10

谢谢! 'clear playsnd'在R2013a中不适用于我,但是,'clear sound'做到了,所以仍然欣赏这个提示:) – Born2Smile 2013-04-14 17:15:45

+0

'clear sound'好,但'clear all'是所有清零的超集,因此也是作品 – alexey 2015-12-05 01:30:40

回答

25

从未使用过 “的声音()”,但是当我

sound(x,fs); % Start the audio 

现在杀音频使用wavplay(...,...,'async')播放音频我可以通过发出

clear playsnd 

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

+1

刚刚尝试过:使用“sound()”启动音频,并发出清晰的播放停止音频。太好了! – 2009-11-23 09:26:11

+3

如果你玩过许多连续的声音只会停止最后一个 – 2011-10-10 23:46:16

+0

没有工作是2017A :-( – 2017-06-02 18:29:05

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) 
+0

妈的,我是8秒为时已晚;) – Gacek 2009-11-16 15:14:02

+1

大声笑,它的热闹大家如何似乎已经意识到,在回答了这个问题在大约1000 EST):) – Jacob 2009-11-16 15:15:02

+0

就在我点击按钮发布我的答案时,我收到橙色的横幅,表示已发布其他答案。 = d – gnovice 2009-11-16 15:16:28

48

试试这个命令肯定能行!

清晰的声音

+2

最简单的答案,这只是工作 – roim 2014-10-18 21:07:51

+3

这为我工作,而“清playsnd”没有。 – Asy 2015-04-14 00:13:51

+0

这个。我喜欢!!! – 2015-11-03 00:39:26