Play a wav sound in a loop without blocking it
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi, i'm new to matlab and am still unclear on what it can and cannot do.
The program I am working on has a loop that displays a flickering pattern at 100Hz. I tried to include the option to trigger a wav sound with a keypress, but it appears that Matlab freezes the loop for the duration of the sound, and restarts it once it's finished.
Is it possible to trigger the sound in a non-blocking way ? Thanks
My code
[y,Fs] = wavread('_path_');
while ( ~program.params.kd(program.params.key.ExitKey))
% frame refresh
if program.params.kd(program.params.key.SoundKey)
wavplay(y, Fs, 'sync');
end
end
0 commentaires
Réponse acceptée
Daniel Shub
le 4 Mai 2012
You can use audioplayer instead of wavplay
doc audioplayer
Retriggering your sound card 100 times a second is going to be problematic. You probably want to create a long sound and trigger the soundcard once from outside the loop.
Plus de réponses (1)
Vitali Roubtsov
le 14 Mai 2012
1 commentaire
Jan
le 14 Mai 2012
There are some bugs in AUDIOPLAYER in Matlab 2011b. E.g. when you store an AUDIOPLAYER object persistently, shutting down Matlab causes a crash. See: http://www.mathworks.com/matlabcentral/answers/18530-audioplayer
Voir également
Catégories
En savoir plus sur Audio and Video Data dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!