Tôi đang phát âm thanh bằng lệnh âm thanh trong Matlab và tôi muốn chương trình chờ cho đến khi phát xong âm thanh trước khi thực hiện lệnh tiếp theo. Tôi làm nó như thế nào?Đợi âm thanh kết thúc
>>tic
>>sound(signal,Fs)
>>wait??
>>b=toc
Tôi đang phát âm thanh bằng lệnh âm thanh trong Matlab và tôi muốn chương trình chờ cho đến khi phát xong âm thanh trước khi thực hiện lệnh tiếp theo. Tôi làm nó như thế nào?Đợi âm thanh kết thúc
>>tic
>>sound(signal,Fs)
>>wait??
>>b=toc
Bạn có thể sử dụng chức năng Audioplayer:
%Create player object
player = audioplayer(signal, Fs);
%play sound
play(player)
while(strcmp(player.running,'on'))
{
% Waiting for sound to finish
}
Tôi đã có một vấn đề tương tự và cố gắng sử dụng câu trả lời gợi ý của Estaban, nhưng tôi không thể có được trong khi vòng lặp phải của tôi (Tôi là một người mới lập trình viên) và kịch bản vẫn bị treo. Cuối cùng tôi tình cờ gặp chức năng playblocking, dường như làm chính xác những gì OP muốn - tạm dừng mã cho đến khi người chơi hoàn thành phát âm thanh. Vì vậy, để sửa đổi câu trả lời trước của Esteban, hãy sử dụng chức năng "playblocking" thay cho chức năng "phát". Sau đó, vòng lặp while là không cần thiết!
Chức năng waitfor hoạt động trên bộ điều khiển đối tượng, vì vậy bạn có thể sử dụng waitfor (pl, 'Running') – Dimpl