我有以下代码在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
}
}
}
}
我尝试了没有分析仪的情况,这没什么区别。
我显然还要写一些文字吗?我已经解释了这个问题,我必须写多少文字?