解決 Apple 設(shè)備不能自動播放 Audio 問題

在 safri 里面明確指出等待用戶的交互動作后才能播放 media,也就是說如果你沒有得到用戶的 action 就播放的話就會被 safri 攔截,所以我們要用一些事件來控制
touchstart 事件:當(dāng)手指觸摸屏幕時(shí)候觸發(fā),即使已經(jīng)有一個(gè)手指放在屏幕上也會觸發(fā)。
touchmove 事件:當(dāng)手指在屏幕上滑動的時(shí)候連續(xù)地觸發(fā)。在這個(gè)事件發(fā)生期間,調(diào)用 preventDefault() 事件可以阻止?jié)L動。
touchend 事件:當(dāng)手指從屏幕上離開的時(shí)候觸發(fā)。
touchcancel 事件:當(dāng)系統(tǒng)停止跟蹤觸摸的時(shí)候觸發(fā)。關(guān)于這個(gè)事件的確切出發(fā)時(shí)間,文檔中并沒有具體說明,咱們只能去猜測了。

先要去監(jiān)聽 touchstart 事件,當(dāng)用戶觸摸屏幕的時(shí)候去執(zhí)行 playAudio 方法,同時(shí)監(jiān)聽播放事件,播放的時(shí)候移除 touchstart 的監(jiān)聽。

 var audio = document.getElementById("audio");
 window.addEventListener('touchstart', playAudio, false);
 audio.addEventListener('play', function () {
    window.removeEventListener('touchstart', playAudio, false);
}, false);

function playAudio() {
    if (audio.paused) {
        audio.load();
        audio.play();
    } else {
        audio.pause();
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ??JavaScript 與 HTML 之間的交互是通過事件實(shí)現(xiàn)的。 ??事件,就是文檔或?yàn)g覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,686評論 1 11
  • 本節(jié)介紹各種常見的瀏覽器事件。 鼠標(biāo)事件 鼠標(biāo)事件指與鼠標(biāo)相關(guān)的事件,主要有以下一些。 click 事件,dblc...
    許先生__閱讀 2,839評論 0 4
  • 最近娛樂圈的新聞很多,本以為一個(gè)月過去了,王寶強(qiáng)和馬蓉的離婚案也該有個(gè)結(jié)果了,可是卻網(wǎng)爆馬蓉“自殺”了。 是意料之...
    郝小糖閱讀 880評論 0 0
  • 在以苗條出名的娛樂圈里胖的明星真的不多,但她們也不想一直胖下去,都會千方百計(jì)的減肥。誰不想變得美美的出現(xiàn)在觀眾面前...
    小小娛樂閱讀 697評論 0 0
  • 之前聊過和“需求”有關(guān)的一些事實(shí) ,也定義了“需求”、“擁有者”、“利益相關(guān)者”、“產(chǎn)品”這樣一些概念。 我們一直...
    不羈小生閱讀 708評論 2 3

友情鏈接更多精彩內(nèi)容