摘要:問題場景制作一個,需要微信打開后背景音樂或者其他音頻文件進行播放,但是經(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
摘要:最新使用的組織機構(gòu)代碼在年頒布實施,由位數(shù)字或大寫拉丁字母本體代碼和位數(shù)字或大寫拉丁字母校驗碼組成。本體代碼采用系列即分區(qū)段順序編碼方法。 1.截取指定字節(jié)數(shù)的字符串 /** * 截取指定字節(jié)的字符串 * @param str 要截取的字符穿 * @param len 要截取的長度,根據(jù)字節(jié)計算 * @param suffix 截取前l(fā)en個后,其余的字符的替換字符,一般用… ...
閱讀 3061·2021-11-25 09:43
閱讀 1038·2021-11-24 10:22
閱讀 1367·2021-09-22 15:26
閱讀 694·2019-08-30 15:44
閱讀 2471·2019-08-29 16:33
閱讀 3709·2019-08-26 18:42
閱讀 921·2019-08-23 18:07
閱讀 1841·2019-08-23 17:55