2016-11-04 142 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(); 
};