javascript - Android手机打开网页时如何播放 'notification'的声音?

标签 javascript android html

我今天一直在搜索并找到了一些答案,例如:

<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/

相关文章:

javascript - 正则表达式匹配字符串最后一次出现后的所有内容

javascript - 用于在离开/关闭页面之前检测未决更改的 AngularJS 指令

javascript - html 是否在同一个对象上使用相同的 id

javascript - 最常用的生成 PDF 报告的方法(JavaScript、node.js)?

java - bug retrofit.RetrofitError : java. io.EOFException for Android

html - 元素不适合 CSS

javascript - 如何防止队列建立 jQuery

javascript - 如何使用 Vue CLI 3 安装 vue 路由器插件?

android - 某些 Galaxy 设备无法使用着色器?

java - Thread.sleep停止整个功能的android