gpt4 book ai didi

javascript - HTML5 中的这段音频有什么问题?

转载 作者:行者123 更新时间:2023-11-28 00:25:39 25 4
gpt4 key购买 nike

我一直对这种 HTML5 和带有 JavaScript 的音频内容感到非常生气。当它已经在 HTML 中时它工作得很好但是因为我将它移动到 JavaScript 它只是不工作。我不想使用 jQuery,因为我想保持尽可能小的大小。所有函数都存在,变量也一样。 Chrome 没有给我任何错误,但是 网络下的 Chrome 开发者工具说;待定。所以我知道它获取了所有数据,但它只是不返回任何内容。它不返回负载和/或 oncanplay

请有人告诉我我可能做错了什么或 Chrome 中可能存在的错误。

function loadAudio(loc,after){
window.itemsToLoad++;
var aud = new Audio(loc);
if(typeof(after)=="function"){
aud.addEventListener('load', function () {updateLoaders();alert('Yes');after(aud);}, false);
}else{
aud.addEventListener('load', function () {alert('Yes');updateLoaders();},false);
}
aud.preload="none";
aud.addEventListener('onerror', function () {alert('Error');updateErrorLoaders();},false);
aud.addEventListener('onabort', function () {alert('abort');updateErrorLoaders();},false);
aud.addEventListener('onemptied', function () {alert('empty');updateErrorLoaders();},false);
aud.type="type=\"audio/ogg\"";
aud.controls="controls";
aud.load();
return aud;
}
window.imageBackground = loadImage('images/background2.png',function (img) { alert("Yes it bloody works ;)");});

最佳答案

我注意到您的代码存在一些问题。首先,您定义一个 loadAudio功能,但您实际上是在调用 loadImage('images/background2.png', fn) .我认为这只是您复制并粘贴代码时的失误。其次,<audio>元素不支持 type属性。如果要指定媒体类型,请使用子项 <source>元素。最后,您正在收听错误的事件。音频元素不响应 onload事件,而是使用 onloadeddata事件。这是您的代码,其中包含更新和一些扩展,以支持在音频播放完毕时调用的回调:

function updateLoaders() {
// do stuff
}

function updateErrorLoaders() {
// do stuff
}

function loadAudio(src, loadComplete, playComplete) {
window.itemsToLoad++;
var audio = new Audio();

// Playback has completed.
audio.addEventListener('ended', function () {
if (typeof playComplete === 'function') {
playComplete(audio);
}
}, false);
// The entire song has loaded (not necessarily done playing).
audio.addEventListener('loadeddata', function () {
updateLoaders();

if (typeof loadComplete === 'function') {
loadComplete(audio);
}
}, false);

// Handle errors.
audio.addEventListener('error', function () {
console.log('error');
updateErrorLoaders();
}, false);
audio.addEventListener('abort', function () {
console.log('abort');
updateErrorLoaders();
}, false);
audio.addEventListener('emptied', function () {
console.log('empty');
updateErrorLoaders();
}, false);

audio.preload = 'none';
audio.src = src;
audio.controls = 'controls';
audio.load();

return audio;
}

var audio = loadAudio('Example.ogg', function (audio) {
console.log('audio completely loaded');
audio.play();
});

有关 <audio> 支持的事件的更多详细信息元素见W3Schools .

关于javascript - HTML5 中的这段音频有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6075900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com