在Matlab App Designer中,我有一个audioplayer对象:
app.player = audioplayer(Time./max(abs(Time)), Fs);
字符串
变量'Time'包含音频数据,变量'Fs'是采样率。我现在想在播放声音时每隔0.1秒执行一次函数'Playmov'。我尝试了以下方法:
app.player.TimerPeriod=0.1; % set the timer interval to 0.1 second
app.player.TimerFcn = @Playmov; % set the timer function to Playmov
型
函数定义如下:
methods (Access = private)
function Playmov (app, event)
disp('Hello World!')
pause(1);
end
end
型
当我运行代码时,我得到以下错误:
警告:执行为类internal定义的事件Executing的侦听器回调时出错。IntervalTimer:使用internal.Callback.execute时出错(第128行)未定义函数“Playmov”,用于类型“audiovideo.internal. audioplayerDesktop”的输入参数。在internal/IntervalTimer/onCustomEvent中(第154行)In internal.IntervalTimer>@(source,data)obj.onCustomEvent(data.Type,data.Data)(第115行)In Pencio/Channel/onCustomEvent(第477行)In Pencio.Channel>@(source,data)obj.onCustomEvent(data.Type,data.Data)(第409行)
我已经尝试了几个函数调用的修改,但我有点不知道它应该是什么样子。
1条答案
按热度按时间c90pui9n1#
感谢this论坛帖子,我能够解决这个问题。我需要将函数调用更改为
字符串
以及相应的函数定义为:
型
因此,您需要指定3个输入参数:第一个是app对象的句柄,因为函数是app的方法。第二个是计时器的句柄('obj'),第三个是计时器事件的事件数据句柄。