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

标签 matlab audio time

我有一个切换按钮,可读取.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/

相关文章:

java - Android 使用真正的 unix 时间

javascript - Jquery当前日期小于X,在特定时间更改(而不是午夜)

excel - 在matlab中导出数据到excel

python - 瀑布图python?

javascript - 是否可以过滤来自嵌入式YouTube的声音?

c# - 如何将波信号分成帧

linux - 毫米 :ss calculator from shell prompt?

ios - 使用加速度计的 iOS 位置估计

matlab - 如何在 MATLAB 中为多个属性编写通用设置方法

c# - 如何解码G711音频数据包C#