等待声音播放完毕。

5
我正在使用Matlab的声音命令播放声音,希望程序在执行下一个命令之前等待声音播放完成。我该怎么做?
>>tic  
>>sound(signal,Fs)  
>>wait??    
>>b=toc  
2个回答

3
您可以使用audioplayer函数:
%Create player object
player = audioplayer(signal, Fs);
%play sound
play(player)
while( strcmp(player.running,'on') )
{
  % Waiting for sound to finish
}

waitfor函数适用于对象句柄,因此您可以使用waitfor(pl,'Running')。 - Dimpl

2
我曾遇到类似的问题,尝试使用Esteban建议的答案,但由于我是新手程序员,无法正确运行while循环,脚本一直卡住。最终,我偶然发现了playblocking函数,它似乎正好满足OP的需求-暂停代码,直到播放器播放完声音为止。因此,要修改Esteban之前的答案,请在“play”函数的位置上使用“playblocking”函数。这样就不需要While循环了!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接