前端入坑紀 34
Up主最近接手了一個HTML5的小游戲,一切都很順利女淑,直到遇到ios瞭郑。
人生太多不確定,何況還是前端鸭你,更是體會深切啊屈张。
<audio hidden id="yao" src="007.ogg"></audio>
<a id="szBtn" href="javascript:;"></a>
var szBtn = document.getElementById("szBtn");
var yaudio = document.getElementById("yao");
szBtn.addEventListener("touchstart", function() {
yaudio.play();
});
這里代碼很清晰,就是有個按鈕和音頻袱巨,邏輯也就是點擊按鈕觸發(fā)播放音頻阁谆。
這很好,安卓上一切正常愉老,可是一遇到ios就不起作用了场绿。
所以,剩下的就是百度俺夕,google裳凸,國內國外網(wǎng)站上了一個遍。最后得出的結論是劝贸,ios只有在用戶真正的交互發(fā)生才會觸發(fā)播放音樂姨谷。這就讓我很迷了,touchstart不就是用戶在交互了嗎映九?逗我玩嗎梦湘?
無奈的我只能繼續(xù)百度了,幸運的在簡書里看到了一篇相關文。因為是在微信里執(zhí)行這個HTML5游戲的捌议,所以符合下面的代碼
document.addEventListener("WeixinJSBridgeReady", function() {
yaudio.load();
}, false);
上面就是要在等微信JSBridge準備好后哼拔,加載這個音頻文件。那樣就可以排除用戶點擊了按鈕瓣颅,沒聲音是文件還沒加載好的鍋倦逐。
然而,事實并非如此簡單宫补,我這邊依舊無效.......沒有聲音......
最后檬姥,看到這里的你一定也猜到了。既然我都發(fā)文上來了粉怕,一定是解決了健民。是的,皇天不負苦心人贫贝,我把ogg換成了mp3秉犹,就全好了。
我的內心其實是很奔潰的稚晚,為什么呢崇堵?
你懂的