我正在使用使用以下子函数的代码:
function playTone (duration, toneFreq)
% Generate a tone
samplesPerSecond = 44100; % the bit rate of the tone
y = sin(linspace(0, duration * toneFreq * 2 * pi, round(duration * samplesPerSecond))); % the equation of the sound wave
player = audioplayer(y, samplesPerSecond); % create an audio object from the sound wave at the specified bit rate
playblocking(player) % play the audio, blocking control until the sound completes
例如,可以使用以下命令调用此函数:
playTone(4, 400);
这会导致声音以 400Hz 播放,持续 4 秒。
问题是,函数 playblocking() 会限制控制,直到声音完成为止。另一种方法是使用 play(),这意味着根本不播放任何声音(因为函数完成后声音就会停止)。
由于我的 MATLAB 版本中存在已知错误,我无法使用 sound() 函数...如果声音是在子函数中创建的,如何使 audioplayer() 函数在不控制系统的情况下播放声音?
您可以定义player
变量为全局变量。只需将此行放在函数的开头即可:
global player
尽管这被认为不是一个好的编程实践,但它可能对您有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)