在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  HTML/ js加載音樂的,有時候oncanplay不執(zhí)行

js加載音樂的,有時候oncanplay不執(zhí)行

let load = (musicSrc) => new Promise(resolve => {
    let audio       = new Audio()
    audio.oncanplay = resolve
    audio.src       = musicSrc
})

加載一個音樂,但是有的時候oncanplay不會執(zhí)行,不知道為什么。

我正常開發(fā)的時候,oncanplay會執(zhí)行沒什么問題,但是我用chrome模擬限制了一下網(wǎng)速
他就不觸發(fā)了。

可是我在Network里看到他已經(jīng)加載完成了啊,結果就是不觸發(fā)事件,很難受::>_<::

回答
編輯回答
野橘
當音頻/視頻處于加載過程中時,會依次發(fā)生以下事件:
loadstart
durationchange
loadedmetadata
loadeddata
progress
canplay
canplaythrough

其中后面兩個:

canplay 當瀏覽器可以播放音頻/視頻時
canplaythrough 當瀏覽器可在不因緩沖而停頓的情況下進行播放時

題主用 canplaythrough 試試看有沒有問題,摘自 W3

2018年2月2日 02:13
編輯回答
孤客

你的意思是如果不限速沒有問題,限速了就出現(xiàn)問題?

2018年3月21日 14:31
編輯回答
瘋浪

試下這個方法

var load = (musicSrc) => new Promise(resolve => {
    let audio       = new Audio()
    audio.src       = musicSrc
    audio.addEventListener('canplay', resolve);
})
2018年5月17日 00:22