2016-11-04 185 views
9

播放MP3與如何使用Javascript爲Android Android版Chrome播放聲音通知?

var popsound = new Audio('http://gget.it/u1urz3zh/popsound.mp3'); 
 
popsound.load(); 
 
popsound.play();

不會在Android版Chrome瀏覽工作。根據this link,這是一個功能,不允許以這種方式播放,即沒有明確的用戶輸入。

據我所知,這是有目的地完成的(主要爲用戶保存移動數據),但如何讓網站播放通知聲音?肯定有一種方法來播放通知聲音(通知在手機上很受歡迎),怎麼做?


如果不能,至少,怎麼知道(與JS),如果瀏覽器將被允許或不允許與.play()播放聲音?(那麼將有可能顯示,如果聲音通知可用,或者在網站上沒有)


語境:我創建一個web chat service,那麼如何播放聲音後通知發佈一條消息,如果我在Android版Chrome中不能使用.play()

回答

0

至少這招可以提前知道,如果媒體播放需要用戶手勢:

function mediaPlaybackRequiresUserGesture() { 
    var audio = document.createElement('audio'); 
    audio.play(); 
    return audio.paused; 
} 

Found here.

-1

您可以將音頻元素添加到DOM並通過javascript動態更改它。

setTimeout(function() { 
 
\t \t \t document.getElementById('audio').src = 'http://gget.it/u1urz3zh/popsound.mp3'; 
 
\t \t \t document.getElementById('audio').load(); 
 
\t \t \t document.getElementById('audio').play(); 
 
\t \t }, 2000);
<audio id="audio"></audio>

+1

嘗試的三星手機(Android版Chrome)上,這是行不通的。另請參閱https://bugs.chromium.org/p/chromium/issues/detail?id=138132 – Basj

-1

這裏是我在我的web項目的一個播放的聲音, 我用了JQuery的,但你可以修改它有點在Javascript工作或代替使用JQuery。

創建一個html標籤音頻並設置它的來源。

<audio id="chatAudio"><source src="01.mp3" type="audio/mpeg"></audio> 

並使用JQuery觸發播放音頻的方法。

$('#chatAudio')[0].play(); 

我不確定它是否適用於您。但你可以嘗試這種方式。

+0

無法在我的適用於Android的Chrome上使用。它是否適合你@GauravLad?再次,這是原因:https://bugs.chromium.org/p/chromium/issues/detail?id = 138132 – Basj

+0

其實它已經差不多8-9個月了,當我上次使用這些代碼時, –

+0

好的,你可以試試看你的手機是否有效嗎? – Basj

0

我在我的應用遇到了同樣的問題。我的應用程序的使用情況是這樣的:
1)單擊按鈕,以顯示與信息的表(用戶操作)
2)顯示錶,並通過AJAX
3)播放聲音刷新其數據時,數據已改變
幸運的是我有用戶操作(第1步),所以我能夠通過它「發起」聲音,然後通過javascript播放,而無需用戶操作。看代碼。

HTML

<audio id="kohoutAudio"> 
    <source src="views/images/kohout.mp3"> 
</audio> 

<button id="btnShow">Show table</button> 

的Javascript

$("#btnShow").click(function() { 
    //some code to show the table 
    //initialize the sound 
    document.getElementById('kohoutAudio').play(); 
    document.getElementById('kohoutAudio').pause(); 
    }); 

function announceChange(){ 
    document.getElementById('kohoutAudio').play(); 
};