国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

工作手記之ios safari禁止音頻自動播放的解決方法

springDevBird / 3602人閱讀

摘要:問題場景制作一個,需要微信打開后背景音樂或者其他音頻文件進行播放,但是經常出現的結果是,安卓基本沒有問題,但是蘋果手機確不行,總是不進行播放,這是為什么呢問題原因蘋果為了用戶著想,禁止了和加載播放。

問題場景:
制作一個H5,需要微信打開后背景音樂或者其他音頻文件進行播放,但是經常出現的結果是,安卓基本沒有問題,但是蘋果手機確不行,總是不進行播放,這是為什么呢?
問題原因:

蘋果為了用戶著想,禁止了Autoplay和JS "onload" 加載播放。

    User Control of Downloads Over Cellular Networks

    In Safari on iOS (for all devices, including iPad), where the user may
be on a cellular network and be charged per data unit, preload and
autoplay are disabled. No data is loaded until the user initiates it.
This means the JavaScript play() and load() methods are also inactive
until the user initiates playback, unless the play() or load() method
is triggered by user action. In other words, a user-initiated Play
button works, but an onLoad="play()" event does not.

但是客戶卻是需要上述效果,那該如何解決呢?

解決方法: 方法一:(依賴touch事件進行播放,但是有時候用戶并沒有操作,此時就有點尷尬了……)
document.addEventListener("touchstart", function(){ 
    audio.play();
}, false);
方法二:(依賴微信的ready事件進行,但是只能解決微信內部,外部瀏覽器safari還是不行:(……)
document.addEventListener("WeixinJSBridgeReady", function () {
    audio.play();
}, false);
但是如果作品使用的場景基本基于微信的話,那是用方法二可以基本有效的解決這個問題
同時,當一個H5有多個音頻時,可以在ready的callback里面重新load一遍,后面在適當的時機調用play就可以了,不然的話,依然會報出play方法undefined的error。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/86572.html

相關文章

  • 工作手記工作點滴積累Javascript方法

    摘要:最新使用的組織機構代碼在年頒布實施,由位數字或大寫拉丁字母本體代碼和位數字或大寫拉丁字母校驗碼組成。本體代碼采用系列即分區段順序編碼方法。 1.截取指定字節數的字符串 /** * 截取指定字節的字符串 * @param str 要截取的字符穿 * @param len 要截取的長度,根據字節計算 * @param suffix 截取前len個后,其余的字符的替換字符,一般用… ...

    0xE7A38A 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<