【发布时间】:2011-12-15 16:04:31
【问题描述】:
我需要在我的页面上加载近 20 种声音。我想也许我只需要单独加载 2 个元素,这就是为什么你会看到 inProgress 属性
loadAudio: function () {
if (this.inProgress <= 1) {
this.inProgress++;
var elem = this.audioQueue.pop();
if (elem != null) {
var path = elem.Path + elem.Fileid + ((this.canPlayMp3) ? '.mp3' : '.wav');
audio = new Audio();
audio.src = "http://localhost:55578/~/x.mp3";
audio.addEventListener('loadedmetadata', function (e) { AudioPlayer.audioLoaded(e); }, false);
//audio.addEventListener('loadeddata', function (e) { AudioPlayer.audioLoaded(e); }, false);
audio.addEventListener('error', function (e) { AudioPlayer.audioLoaded(e); }, false);
if (elem.AudioType == AudioPlayerTypes.Keyboard) {
this.keyboardAudio[elem.Id] = audio;
}
}
}
audioLoaded: function (e) {
var t = e.target;
if (e.type == "error") {
var code = e.target.error.code;
console.log("error" + t.currentSrc + e.target.error.code);
} else {
console.log("loaded" + t.currentSrc);
}
this.inProgress--;
this.loadAudio();
}
如你所见,我加载相同的声音只是为了测试,但在 6 个音频后出现同样的问题,我得到了错误
LOG: loadedhttp://localhost:55578/~/x.mp3
LOG: loadedhttp://localhost:55578/~/x.mp3
LOG: loadedhttp://localhost:55578/~/x.mp3
LOG: loadedhttp://localhost:55578/~/x.mp3
LOG: loadedhttp://localhost:55578/~/x.mp3
LOG: loadedhttp://localhost:55578/~/x.mp3
LOG: errorhttp://localhost:55578/~/x.mp3 (4 - is error code)
它在 Chrome 和 Firefox 中非常棒,但在 IE 中却不行。 我找不到任何限制和解决方案。
还有一个问题:我读到有时最好避免使用 DOM 元素,这就是我使用音频对象的原因,因为我需要多次播放不同的元素。
【问题讨论】:
-
4的错误代码意味着“资源不适合”,尽管它们都是相同的 MP3,所以我不确定它为什么会引发该错误。 w3.org/TR/html5/… -
是的,这对我来说是主要的痛苦,因为我正在加载相同的元素。看起来像这样,即总音频流被限制为 6 或什么......
-
哪个版本的IE?我假设9?如果您尝试加载 5 个音频流怎么办?另外,您是否安装了媒体播放器?
-
是的,它的 IE9。我还安装了 WMP,因为我可以播放已加载的声音。
-
是的,5 个音频流非常酷,但有时它会加载超过 6 个声音,但它就像一个随机的.....
标签: javascript internet-explorer html audio