如何使用Javascript为Android Android版Chrome播放声音通知?
问题描述:
播放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()
?
答
至少这招可以提前知道,如果媒体播放需要用户手势:
function mediaPlaybackRequiresUserGesture() {
var audio = document.createElement('audio');
audio.play();
return audio.paused;
}
答
您可以将音频元素添加到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>
答
这里是我在我的web项目的一个播放的声音, 我用了JQuery的,但你可以修改它有点在Javascript工作或代替使用JQuery。
创建一个html标签音频并设置它的来源。
<audio id="chatAudio"><source src="01.mp3" type="audio/mpeg"></audio>
并使用JQuery触发播放音频的方法。
$('#chatAudio')[0].play();
我不确定它是否适用于您。但你可以尝试这种方式。
答
我在我的应用遇到了同样的问题。我的应用程序的使用情况是这样的:
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();
};
尝试的三星手机(Android版Chrome)上,这是行不通的。另请参阅https://bugs.chromium.org/p/chromium/issues/detail?id=138132 – Basj