How can I execute the “sound” function in matlab and then execute the rest afterwards? (Blocking)
7 views (last 30 days)
Show older comments
cui,xingxing
on 31 Jul 2021
Answered: Walter Roberson
on 31 Jul 2021
for example,I have the following code to make simple a music player,but "sound" function non-blocking(asynchronous) to evaluate,how can i play musics one by one?(I know "audioplayer" object can be used to play my music,but audioplayer is not recommend to use in for loop)
%% 音乐播放器
folder = fullfile(matlabroot,'toolbox','audio','samples');
audis = audioDatastore(folder);
audis = shuffle(audis);
for i = 1:length(audis.Files)
filename = audis.Files{i};
fprintf('%s\n',filename);
[y,Fs] = audioread(filename);
sound(y,Fs) % non-blocking ?
end
0 Comments
Accepted Answer
Walter Roberson
on 31 Jul 2021
sound() cannot be made blocking.
In your situation, if you have the DSP toolbox then dsp.AudioDeviceWriter https://www.mathworks.com/help/dsp/ref/audiodevicewriter-system-object.html is what is recommended; if you have the Audio System Toolbox then AudioDeviceWriter https://www.mathworks.com/help/audio/ref/audiodevicewriter-system-object.html?searchHighlight=audiodevicewriter&s_tid=srchtitle
0 Comments
More Answers (0)
See Also
Categories
Find more on Audio I/O and Waveform Generation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!