最近在寫一個程式,要再網頁播放音效,而且是分成很多段,這段播完換那段,寫成android跟PC一直正常,放到ios才發現不可以,不只是ios的safari,連ios中的chrome也不能,查了才發現原來ios禁止非使用者主動的播放音效,一定要透過互動,例如點螢幕、按按鈕之類,目的是保護使用者,避免被嵌入的音效檔吃掉流量。ios真的很會替使用者想很多。

好吧那就點了播放音效吧,結果發現只能點一個播一樣,我這個APP要重複不斷一直播很多不同的音效,查一下網路,可以把音效物件宣告廣域,然後這個物件就可以重複使用,不須在經過使用者互動。

宣告廣域變數
soundEffect = document.createElement('audio');

點選按鈕或圖片時
soundEffect.setAttribute('src', '');//指定位置為空
soundEffect.play();//播放音效,但不需要真的聲音,因為位置為空

真的要播音效時
soundEffect.setAttribute('src', 'countdown05.mp3');//指定真正的影片位置
soundEffect.play();//播放音效

由於soundEffect宣告為廣域,因此可以重複利用。

arrow
arrow
    文章標籤
    ios javascript audio
    全站熱搜

    夜市 小霸王 發表在 痞客邦 留言(0) 人氣()