При воспроизведении звука с использованием, например,
sound(x,fs);
Я иногда случайно ошибаюсь. Если x имеет значительную длину, я пытаюсь дождаться завершения звука. Любые предложения о том, как "прервать" воспроизведение? Я уже пробовал
sound(mute,fs); % Mute is a short vector containing all zeroes
Но это не сработало. Кстати, я использую Windows.
UPDATE:
Следующее решение, предложенное кигураем, похоже, делает трюк:
sound(x,fs); % Start the audio
Теперь убейте звук
clear playsnd
Никогда не использовался "sound()", но когда я играл аудио с использованием wavplay (...,..., "async" ), я могу остановить звук, выпустив
clear playsnd
Может быть, это работает и со звуком()? Примечание. Это при игре асинхронно. Для синхронного воспроизведения я предполагаю, что CTRL-C должен сломать его, но у меня были проблемы с wavplay() в последний раз, когда я это пробовал.
Попробуйте эту команду. Определенно работает!!
чистый звук
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)
Вместо этого используйте объект аудиоплеер - он дает вам полный контроль над тем, что вы делаете со звуком. То есть:
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
clear playsnd
не работал для меня в R2013a, однако,clear sound
работал, так что все равно оцените подсказку :)