Quantcast
Channel: 神魂顛倒論壇-Flash--Front-end網頁前端討論最新50篇論壇主題-全文
Viewing all articles
Browse latest Browse all 735

iPhone/iPad 等行動裝置上的 audio 標籤無法自動播放 (autoplay) 與預載問題

$
0
0
iPhone/iPad 等行動裝置上的 audio 標籤無法自動播放 (autoplay) 與預載問題

情況描述:Case 中有個互動效果是當使用者開啟手機版網頁後,會進行互動並播放 GIF 動畫(噢,許多舊版本的 Android 裝置是無法播放 GIF 動畫的,這點也要提一下),動畫播放過程中會播放音效。

在 Android 的內建瀏覽器中可自動播放音效,但在 Android 的 Chrome Beta 與 iPhone/iPad 上的 Safari 卻無法正常播放,一點聲音也沒有。而且在桌上型電腦上都可正常地播放。

後來查到 Safari 官方的規範文件 Safari HTML5 Audio and Video Guide 中提到

這是為了防止使用者使用以量計費的行動網路時,自動播放或預載就會不知不覺地花去網路費用。

除非這個播放是使用者「主動」點擊觸發的,不然設什麼屬性都不會自動播放/預載。

能了解它們的立場,是立意良好啦,但在製作一些需要互動體驗的效果上就會受此限制了。跟此篇作者最後的看法一樣,為何不跳出選項(像要求存取 GPS 一樣)讓使用者自由選擇是否要預載/播放聲音呢?

 
在我的 Case 中,確實是在使用者「主動觸發」,不過是在觸發播放 GIF 動畫後「一段時間」( 我是用 setTimeout 或是 Nodejs 的偵聽來等待 ) 才會播放聲音,那一樣會被判定為「非使用者主動點擊」。

解法有點取巧,就是「先 play 再 pause,接著再 play 」。


Viewing all articles
Browse latest Browse all 735

Trending Articles