Подтвердить что ты не робот

Как остановить звук в MATLAB?

При воспроизведении звука с использованием, например,

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
4b9b3361

Ответ 1

Никогда не использовался "sound()", но когда я играл аудио с использованием wavplay (...,..., "async" ), я могу остановить звук, выпустив

clear playsnd

Может быть, это работает и со звуком()? Примечание. Это при игре асинхронно. Для синхронного воспроизведения я предполагаю, что CTRL-C должен сломать его, но у меня были проблемы с wavplay() в последний раз, когда я это пробовал.

Ответ 2

Попробуйте эту команду. Определенно работает!!

чистый звук

Ответ 3

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)

Ответ 4

Вместо этого используйте объект аудиоплеер - он дает вам полный контроль над тем, что вы делаете со звуком. То есть:

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