簡體   English   中英

需要用戶交互才能播放音頻解決方法?

[英]User interaction needed to play audio workaround?

目前,我正在開發html5 / js音樂播放器應用程序。 我在移動設備上有很多用戶在播放音樂時遇到問題。 根據許多網站的介紹,您需要先與用戶互動,然后才能播放音頻。

目前,這就是我對音樂播放器進行編程的方式。 我已經使用onclick屬性來檢測播放按鈕上的點擊/點擊。

<button onclick = "playaudio('song name');">Play</button>

然后我有用於js的代碼來解析播放網址。

var http = new XMLHttpRequest();
var url = '/getsong';
var params = 'name='+songname;
http.open('POST', url, true);


http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

http.onreadystatechange = function() {
    if(http.readyState == 4 && http.status == 200) {
    var snd=document.getElementsByTagName("audio")[0];
    snd.src = http.responseText;
    snd.load();
    snd.play();
    }
}
http.send(params);

這在計算機上工作正常,但在移動用戶上,必須單擊“暫停/播放”按鈕才能開始播放音樂。 用戶交互需求是否有任何解決方法,因為我想實現一個遠程播放系統,例如Google Cast / Spotify Connect。

目前,我無法訪問完整的代碼,因此這只是音樂播放器的核心部分。

另外,我還需要制作播放列表功能,因此,如果沒有用戶交互,播放播放列表中的下一首曲目似乎是不可能的。

前面的問題說,某些移動瀏覽器不允許音頻自動播放,可以實施,有幾種解決方法。

音頻標簽自動播放在移動設備中不起作用

是的,對於播放器,您可以選擇一個開放源代碼的HTML5播放器Amplitude.js,該播放器支持播放列表以及下一首歌曲,而無需用戶基於播放列表進行交互,您可以在其網站上查看演示

https://521dimensions.com/open-source/amplitudejs

請參閱其GitHub上的代碼:

https://github.com/521dimensions/amplitudejs

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM