成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

springDevBird / 3607人閱讀

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

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

蘋果為了用戶著想,禁止了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事件進行,但是只能解決微信內(nèi)部,外部瀏覽器safari還是不行:(……)
document.addEventListener("WeixinJSBridgeReady", function () {
    audio.play();
}, false);
但是如果作品使用的場景基本基于微信的話,那是用方法二可以基本有效的解決這個問題
同時,當一個H5有多個音頻時,可以在ready的callback里面重新load一遍,后面在適當?shù)臅r機調(diào)用play就可以了,不然的話,依然會報出play方法undefined的error。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/86572.html

相關(guān)文章

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

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

    0xE7A38A 評論0 收藏0

發(fā)表評論

0條評論

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