HTML5音频重新开始

Ωme*_*ega 10 javascript browser audio jquery html5

var audio = new Audio("click.ogg")
Run Code Online (Sandbox Code Playgroud)

我在需要时播放咔嗒声

audio.play()
Run Code Online (Sandbox Code Playgroud)

但是,有时用户速度很快,浏览器根本不播放音频(可能是在播放上一个play请求时).这个问题与预载有关吗?

如何强制浏览器停止播放并重新开始?没有stop,只是pause在HTML5音频组件中,是否正确?这里可以使用哪些解决方法?


更新 - 附加说明:

我有div一个带有touchend事件的多个类似复选框的元素.当触发这样的事件时,元素在视觉上改变,播放声音并相应地设置内部变量.如果用户慢慢点击这些元素,一切都很顺利.如果快速点击,声音通常会被完全跳过...

Mac*_*ski 29

你可以试试这段代码:

audio.currentTime = 0;
audio.play();
Run Code Online (Sandbox Code Playgroud)

看起来这是最简单的解决方案.


Dre*_*rew 9

这是我一直在使用的代码,它对我有用:

            if(audioSupport.duration > 0 && !audioSupport.paused){

                //already playing
                audioSupport.pause();
                audioSupport.currentTime = 0;
                audioSupport.play();

            }else{

                //not playing

                audioSupport.play();    

            }
Run Code Online (Sandbox Code Playgroud)