我今天一直在搜索并找到了一些答案,例如:
<head>
<title>Audio test</title>
<script type="text/javascript">
// @param filename The name of the file WITHOUT ending
function playSound(filename){
document.getElementById("sound").innerHTML='<audio autoplay="autoplay"><source src="' + filename + '.mp3" type="audio/mpeg" /><source src="' + filename + '.ogg" type="audio/ogg" /><embed hidden="true" autostart="true" loop="false" src="' + filename +'.mp3" /></audio>';
}
</script>
</head>
<body>
<button onclick="playSound('bing');">Play</button>
<div id="sound"></div>
</body>
对于上面的答案,我相信我只需要输入正确的文件名(例如 mydomain.com/correctfilename.mp3),其中“文件名”在该脚本中。
但我正在寻找一些与众不同且加载时间更快的东西。我想知道是否可以在打开网站时播放“默认”Android 通知声音。我在这里找到了与我需要的类似的东西:
try {
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
r.play();
} catch (Exception e) {
e.printStackTrace();
}
但是当我把它放在 HTML 文件中时,它不起作用,我认为这是因为它不是 javascript。
我知道有一些方法可以访问您的手机所具有的任何振动功能,所以我认为可能有一种方法可以访问它所具有的预加载声音。我可以使用脚本执行此操作吗?
最佳答案
我想你问的是你是否可以从网页上做一些事情,而不是从设备上的特定应用程序 - 为此使用 WebView .
对于任何通过浏览器访问设备服务的网页,都有 W3C Device API Working Group , 它产生了一个 Vibration API ,甚至 works already on Android Chrome Beta 39和其他人一样:
navigator.vibrate(2000);
但是,我不知道有什么方法可以播放跟随设备环境的默认声音/振动,例如 Windows API handles it .
关于javascript - Android手机打开网页时如何播放 'notification'的声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30746746/