gpt4 book ai didi

matlab - 查找.wave文件的末尾以更改MATLAB中的按钮String

转载 作者:行者123 更新时间:2023-12-03 00:16:42 25 4
gpt4 key购买 nike

我有一个切换按钮,可读取.wave文件,并且字符串更改为暂停,然后.....
我的问题是,当用户播放声音时,按钮字符串更改为暂停,结束声音后,该字符串仍为暂停状态,我想将其更改为播放。但是我不知道如何在声音播放结束时找到要更改的按钮弦来播放?

我知道我可以通过将声音信号的长度除以采样率并创建延迟函数来找到声音的持续时间,但是我正在寻找一种更好的方式,例如特定的功能,是否存在类似的功能?

function Playb_Callback(hObject, eventdata, handles)

global openS recS playS;

if(openS)
if (state)
set(hObject, 'String', 'Pause');
resume(handles.p);
else
set(hObject, 'String', 'Play');
pause(handles.p);
end
end
if(get(handles.p, 'Running')==0)
set(hObject, 'String', 'Play');
end

最佳答案

audioplayer对象具有4个回调函数,其中之一是StopFcn,它将在播放停止时执行。

因此,在定义音频播放器之后,请将此属性设置为一个函数:

set( handle.p , 'StopFcn' , {@StopPlayback_Callback,handles.Playb} )

然后在代码中的某处添加函数,该函数将更改按钮的状态:
function StopPlayback_Callback(hObject, eventdata, buttonHandle )
set( buttonHandle , 'String', 'Play' );

注意:在回调定义期间发送给函数回调的 handles.Playb参数应该是按钮“播放/暂停”的实际句柄。如果您的按钮句柄具有其他名称,请将此参数调整为真实名称。

同样,您可以使用 StartFcn将其扩展到播放的开始。
set( handle.p , 'StartFcn' , {@StartPlayback_Callback,handles.Playb} )

然后
function StartPlayback_Callback(hObject, eventdata, buttonHandle )
set( buttonHandle , 'String', 'Pause' );

关于matlab - 查找.wave文件的末尾以更改MATLAB中的按钮String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27396573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com