student - matlab tutorial
Cómo detener el sonido en MATLAB? (4)
Cuando reproduzca un sonido usando, por ejemplo:
sound(x,fs);
A veces, accidentalmente juego el equivocado. Si x es de longitud considerable, actualmente trato de esperar hasta que el sonido se haya completado. ¿Alguna sugerencia sobre cómo "abortar" la reproducción? Ya lo he intentado
sound(mute,fs); % Mute is a short vector containing all zeroes
Pero eso no funcionó. Estoy usando Windows por cierto.
ACTUALIZAR:
La siguiente solución propuesta por kigurai parece hacer el truco:
sound(x,fs); % Start the audio
Ahora mata el audio por
clear playsnd
Nunca utilicé "sonido ()" pero cuando reproduje audio usando wavplay (..., ..., ''async'') puedo detener el sonido emitiendo
clear playsnd
Tal vez eso también funciona con sonido () Nota: Esto es cuando se juega de forma asincrónica. Para la reproducción sincrónica, supongo que CTRL-C debería romperla, pero tuve problemas con wavplay () la última vez que lo intenté.
Prueba este comando ¡Definitivamente funciona!
sonido claro
Usa el objeto de reproductor de audio en su lugar, te brinda el control total de lo que haces con el sonido. Es decir:
player = audioplayer(x, fs);
play(player) % start the player
stop(player) % stop whenever you like...
El reproductor de audio tiene muchas otras cosas útiles: http://www.mathworks.com/help/techdoc/ref/audioplayer.html
Mathworks dice (y esto se aplica al sound
también),
No hay ninguna función en MATLAB que pueda pausar o detener la reproducción de audio una vez iniciado por WAVPLAY. En lugar de usar WAVPLAY, una alternativa es crear un objeto AUDIOPLAYER. Este tipo de objeto tiene métodos que permiten pausar, reanudar y detener la reproducción de audio. Por ejemplo:
player = audioplayer(Y, Fs)
% start the playback
play(player);
% pause the playback
pause(player);
% resume the playback
resume(player)
% stop the playback
stop(player)