Как остановить звук в MATLAB? - PullRequest
35 голосов
/ 16 ноября 2009

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

sound(x,fs);

Я иногда случайно играю не того. Если x имеет значительную длину, я сейчас пытаюсь дождаться завершения звука. Любые предложения о том, как "прервать" воспроизведение? Я уже попробовал

sound(mute,fs); % Mute is a short vector containing all zeroes

Но это не сработало. Кстати, я использую Windows.

UPDATE:
Следующее решение, предложенное kigurai, похоже, решает проблему:

sound(x,fs); % Start the audio

Теперь убейте звук с помощью

clear playsnd

Ответы [ 4 ]

57 голосов
/ 18 октября 2014

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

чистый звук

28 голосов
/ 16 ноября 2009

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)
25 голосов
/ 16 ноября 2009

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

clear playsnd

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

7 голосов
/ 16 ноября 2009

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

player = audioplayer(x, fs);
play(player)   % start the player
stop(player)   % stop whenever you like...

Аудиоплеер имеет много других полезных вещей: http://www.mathworks.com/help/techdoc/ref/audioplayer.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...