Я использую функцию MATLAB для запуска звука. Эта функция такова:MATLAB: Остановка воспроизведения звука
function playTone (duration, toneFreq)
% Generate a tone
global player; % as a global variable, sound will continue to play after the function has ended.
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
play(player); % play the audio, blocking control until the sound completes
Я хотел был бы иметь возможность остановить звук по запросу. Я не могу использовать:
clear playsnd;
, так как я подстрекал звук с помощью функции аудиоплеера() (не функция звука()).
Я также не могу использовать:
stop(player);
, потому что я пытаюсь остановить звук из родительской функции
Я имел («??? Неопределенная функция или переменная„игрока“.») для установки моей функции, как указано выше, поскольку мне нужно иметь возможность генерировать тон из подфункции, и я не могу использовать функцию sound(), так как иногда получаю сообщение об ошибке «Can not register sound window». Переменная 'player' установлена как глобальная, чтобы гарантировать, что звук продолжает воспроизводиться после завершения функции.