最近在寫一個程式,要再網頁播放音效,而且是分成很多段,這段播完換那段,寫成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宣告為廣域,因此可以重複利用。
文章標籤
全站熱搜
留言列表