HTML5 audio 手機微信瀏覽器不自動播放

小程序可以內(nèi)嵌網(wǎng)頁啦!老板說我們的音頻播放用網(wǎng)頁做~
OK, 做就做!

于是本人按著文檔開始擼代碼:寫 audio 標簽,js 獲取 audioEl , play 是播放, pause 是暫停,監(jiān)聽 timeupdate 事件,設置時間改 currentTime,一氣呵成,完美!交工啦~

俺自定義的音頻播放器

老板:有 BUG!我要的是一進入頁面,就自動播放。

What? BUG?不自動播放?我用電腦 Chrome/Safari 都測試過,可以的呀!
找了一會兒確定不是代碼邏輯的 bug, 開始找度娘了。看到了這個小哥哥的回答。感激!!

html audio 在 iPhone,iPad , Safari 瀏覽器不能播放是有原因滴
(在safari on ios里面明確指出等待用戶的交互動作后才能播放 media,也就是說如果你沒有得到用戶的 action 就播放的話就會被 safri 攔截)

小哥哥給的解決方案是在用戶第一次觸摸屏幕(touchstart)的時候開始播放。
這這這... 有些奇怪的好嘛!我摸了一下屏幕,也沒點播放按鈕,咋就播放了...
所以,嘿嘿嘿... 砍掉了自動播放功能~

老板:有 BUG!我要的是播放時從 60s 處開始,你這咋從零開始播放咧?

What? BUG?從零播放?我在 play 里面加 audioEl.currentTime = 60 了呀!
原來是觸發(fā) play 事件的時候 audioEl 這個對象可能還沒獲取到。好辦,監(jiān)聽 canplay 事件,在這里面賦值 audioEl.currentTime = 60 就解決啦~

    // 可以自動播放時正確的事件順序是
    // loadstart
    // loadedmetadata
    // loadeddata
    // canplay
    // play
    // playing
   
    // 不能自動播放時觸發(fā)的事件是
    // iPhone5  iOS 7.0.6 loadstart
    // iPhone6s iOS 9.1   loadstart -> loadedmetadata -> loadeddata -> canplay
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容