首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

如何判断一个mp3加载完毕? js如何实现?能判断的吗?

发布网友 发布时间:2022-04-26 06:13

我来回答

2个回答

热心网友 时间:2022-06-24 14:12

function canPlayAudioMP3(callback){
try {
var audio = new Audio();
//Shortcut which doesn't work in Chrome (always returns ""); pass through
// if "maybe" to do asynchronous check by loading MP3 data: URI
if(audio.canPlayType('audio/mpeg') == "probably")
callback(true);

//If this event fires, then MP3s can be played
audio.addEventListener('canplaythrough', function(e){
callback(true);
}, false);

//If this is fired, then client can't play MP3s
audio.addEventListener('error', function(e){
callback(false, this.error)
}, false);

//Smallest base-encoded MP3 I could come up with (<0.000001 seconds long)
audio.src = "data:audio/mpeg;base,/+MYxAAAAANIAAAAAExBTUUzLjk4LjIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
audio.load();
}
catch(e){
callback(false, e);
}
}

追问谢谢你的回答,请问我要判断指定src路径的MP3是否加载完毕怎么把路径参数传进去?上面的函数可以运行,但是不太会用,还请大神明示!

热心网友 时间:2022-06-24 14:12

用document.onreadystatechange的方法来监听状态改变,然后用document.readyState==“complete”判断是否加载完成代码如下:document.onreadystatechange=subSomething;//当页面加载状态改变的时候执行这个方法.functionsubSomething(){if(document.readyState==“complete”)//当页面加载状态myform.submit();//表单提交}页面加载readyState的五种状态原文如下:0:(Uninitialized)thesend()methodhasnotyetbeeninvoked.1:(Loading)thesend()methodhasbeeninvoked,requestinprogress.2:(Loaded)thesend()methodhascompleted,entireresponsereceived.3:(Interactive)theresponseisbeingparsed.4:(Completed)theresponsehasbeenparsed,isreadyforharvesting.翻译成中文为:0-(未初始化)还没有调用send()方法1-(载入)已调用send()方法,正在发送请求2-(载入完成)send()方法执行完成,已经接收到全部响应内容3-(交互)正在解析响应内容4-(完成)响应内容解析完成,可以在客户端调用了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com