2012-12-19 35 views
5

我在Matlab中使用聲音命令播放聲音,我希望程序在執行下一個命令之前等待,直到它完成播放聲音。我該怎麼做?等待聲音完成

>>tic 
>>sound(signal,Fs) 
>>wait??  
>>b=toc 

回答

3

可以使用audioplayer功能:

%Create player object 
player = audioplayer(signal, Fs); 
%play sound 
play(player) 
while(strcmp(player.running,'on')) 
{ 
    % Waiting for sound to finish 
} 
+0

waitfor函數在對象句柄上工作,所以你可以使用waitfor(pl,'Running') – Dimpl

2

我也有類似的問題,並試圖用Estaban建議的答案,但我不能讓我的,而右環行(我是新手程序員)和腳本不停地掛着。最終我偶然發現了playblocking函數,這似乎正是OP想要的 - 暫停代碼,直到播放器完成播放聲音。因此,要修改Esteban先前的答案,請使用「playblocking」功能代替「play」功能。那麼While循環是不需要的!