Я экспериментирую с WebAudio, и я загружаю звук со следующим кодом javascript.Webaudio, воспроизведение звука дважды
function playAudio(){
var audio = document.getElementById('music');
var audioContext = new webkitAudioContext();
var analyser = audioContext.createAnalyser();
var source = audioContext.createMediaElementSource(audio);
source.connect(analyser);
analyser.connect(audioContext.destination);
audio.play();
}
Я также хочу, чтобы анализировать звук может визуализировать его брезентом, поэтому в analyser
. Он работает нормально в первый раз, но если я запустил эту функцию дважды, я получаю сообщение об ошибке.
> playAudio(); // works fine, i can hear a sound
> playAudio(); // error
InvalidStateError: Failed to execute 'createMediaElementSource' on 'AudioContext': invalid HTMLMediaElement.
В чем причина этой ошибки? Я знаю, что ошибка вызвана этой строки кода:
var source = audioContext.createMediaElementSource(audio);
Я создаю аудио контекст новый, поэтому я предположил бы, что я могу повторно использовать один и тот же элемент аудио в моем HTML.
Что такое намерение вызвать метод PlayAudio дважды? – Raathigesh
Нашел эту скрипку во время поиска. http://jsfiddle.net/ikerr/WcXHK/ – Raathigesh
Я создал небольшое приложение, которое распознает drumkick в аудио-файле. Я хочу визуализировать это, но не иметь звук в цикле. Идея состоит в том, что пользователь может видеть, что приложение работает при нажатии кнопки воспроизведения аудиоклипа. А также сможете повторить. – cantdutchthis