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

Компилятор выделит статическую переменную (переменные), определенную в функции foo при загрузке программы, однако компилятор также добавит некоторые дополнительные инструкции (машинный код) к Вашей функции foo так, чтобы в первый раз это было вызвано, этот дополнительный код инициализирует статическую переменную (например, вызов конструктора, если применимо).

@Adam: Это негласно инжекция кода компилятором является причиной результата, который Вы видели.

35
задан S.C. Madsen 23 November 2009 в 09:31
поделиться

3 ответа

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

clear playsnd

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

25
ответ дан 27 November 2019 в 06:28
поделиться

Вы также можете изучить библиотеку 'io / wait' для Ruby, которая предоставляет метод ready? всем объектам ввода-вывода. Я не тестировал вашу ситуацию специально, но использую ее в библиотеке на основе сокетов, над которой я работаю. В вашем случае, при условии, что STDIN - это просто стандартный объект ввода-вывода, вы, вероятно, могли бы выйти в тот момент, когда готов? вернет результат, отличный от нуля, если вы не хотите узнать, какая клавиша была фактически нажата. Эту функциональность можно реализовать с помощью require 'io / wait' , который является частью стандартной библиотеки Ruby. Я не уверен, что он работает во всех средах, но попробовать стоит. Rdocs: http: // ruby-doc. может приостановить или остановить воспроизведение звука один раз инициирован 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)
28
ответ дан 27 November 2019 в 06:28
поделиться

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

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

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

7
ответ дан 27 November 2019 в 06:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: