亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

springDevBird / 3703人閱讀

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

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

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

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

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

相關(guān)文章

  • 工作手記工作點(diǎn)滴積累Javascript方法

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

    0xE7A38A 評論0 收藏0

發(fā)表評論

0條評論

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