我有一个在按下按钮时播放 mp3 文件的页面,使用 javascript 如下:
onclick="playAudio"
有明显的 300ms 延迟。我只想通过 html5 浏览器使用它,只使用 nexus 7。所以我不想要 IE6 等的任何备份代码。我见过的每个解决方案似乎都非常复杂,我无法让它工作。
没有简单的javascript解决方案吗?
我有一个在按下按钮时播放 mp3 文件的页面,使用 javascript 如下:
onclick="playAudio"
有明显的 300ms 延迟。我只想通过 html5 浏览器使用它,只使用 nexus 7。所以我不想要 IE6 等的任何备份代码。我见过的每个解决方案似乎都非常复杂,我无法让它工作。
没有简单的javascript解决方案吗?
查看 github 上的 Fastclick 项目。如果我理解您的问题,您只想摆脱触摸设备上的 300 毫秒延迟。这个项目是一个 polyfill,使触摸用户界面更加敏捷和响应。这是网址:
https://github.com/ftlabs/fastclick
用例:
只需像这样包含 fastclick 库:
<script type='application/javascript' src='/path/to/fastclick.js'></script>
然后只需通过在您的主应用程序 js 文件中添加以下内容来实例化它:
window.addEventListener('load', function() {
new FastClick(document.body);
}, false);
希望有帮助!
据我了解您的问题,此问题与播放音频有关,不一定与按钮交互有关。因此,在此基础上,我将尝试在下面回答您的问题。
我假设您为此使用 HTML5 音频 API。你看过preload
属性吗?它有一个名为的值auto
,它告诉浏览器预加载音频可能是个好主意。这样做的缺点是您可能会给服务器带来不必要的开销,因为无论如何您几乎总是在下载音频。使用这种方法,您可以通过 JavaScript 订阅一个canplaythrough
事件,告诉您音频何时已下载并准备好播放。
可以在此处找到有关此主题的更多详细信息: