【发布时间】:2015-05-05 03:03:38
【问题描述】:
我有两个回调函数,一个播放音频,另一个停止音频。
function Play_Callback(hObject, eventdata, handles)
global path;
global player;
[Y, Fs] = audioread(path);
player = audioplayer(Y,Fs);
play(player);
pause(max(size(Y))/Fs);
function Stop_Callback(hObject, eventdata, handles)
global player;
stop(player);
问题是,在播放回调中,如果我不暂停,什么都不会播放。原因是一旦回调完成,“玩家”变量就会被转储。然而,暂停让音频有机会运行它的过程。停止回调也有效,即音频停止。但是,当轨道停止时,暂停仍将继续。
我想要一个解决方案,让我在播放音频的同时使用其余功能,并且即使在单击停止按钮后也不需要暂停以继续播放。
有什么想法吗?
编辑,我尝试了另一种方法,但仍然有问题: 播放回调
global path;
[Y, Fs] = audioread(path);
player = audioplayer(Y,Fs);
guidata(handles.Play,player);
play(player);
停止回调
player = guidata(hObject);
stop(player);
问题是,当我尝试从 uitable 中选择另一个曲目时,我在启用另一个按钮的行上出现错误
set(handles.getCandidatesByKey,'Enable','on');
错误是:
No appropriate method, property, or field getCandidatesByKey for class audioplayer.
有什么想法吗?提前致谢!
【问题讨论】: