У меня есть следующий код загрузки аудио в Javascript.
В Firefox поток начинает воспроизводиться сразу, но в Safari требуется несколько минут, чтобы начать играть, почему это так?
var audioPlayer = {
track_element: [],
track_state: [],
context: [],
audio: [],
analyser: [],
source: [],
trigger: function (e, id, src) {
if ( this.track_element[id] === undefined ) {
this.context[id] = new (window.AudioContext || window.webkitAudioContext)();
this.audio[id] = new Audio();
this.audio[id].autoplay = true;
this.audio[id].crossOrigin = "anonymous";
this.audio[id].src = src;
this.source[id] = this.context[id].createMediaElementSource(this.audio[id]);
this.analyser[id] = this.context[id].createAnalyser();
this.source[id].connect(this.analyser[id]);
this.analyser[id].connect(this.context[id].destination);
this.track_element[id] = e.target;
}
for ( var key in this.track_element ) {
this.track_element[key].innerHTML = "PLAY";
if ( this.track_state[key] ) {
this.audio[key].pause();
this.track_state[key] = false;
} else if ( key == id ) {
this.track_state[key] = true;
this.track_element[key].innerHTML = "LOADING";
this.audio[key].oncanplay = function(key) {
this.audio[key].play();
this.track_element[key].innerHTML = "PAUSE";
}.bind(this, key);
///analyser code removed
}
}
}
}
Я пробовал без анализатора, и это не имеет значения.
Я должен написать еще немного текста? Сколько текста мне нужно написать, я объяснил проблему?