小程序可以內(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