Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AbortError:play()请求被暂停()的调用中断_Javascript_Html_Audio_Promise_Playback - Fatal编程技术网

Javascript AbortError:play()请求被暂停()的调用中断

Javascript AbortError:play()请求被暂停()的调用中断,javascript,html,audio,promise,playback,Javascript,Html,Audio,Promise,Playback,我现在正试图修复这个javascript代码,但我似乎无法正确处理它,它仍然会抛出 未捕获(承诺中)中止恐怖:play()请求被中断 通过调用暂停() 我不明白这有什么问题,所以如果你们能帮我,我会非常高兴 这是密码 <html> <head> <script src="nui://game/ui/jquery.js" type="text/javascript"></script> <script> v

我现在正试图修复这个javascript代码,但我似乎无法正确处理它,它仍然会抛出

未捕获(承诺中)中止恐怖:play()请求被中断 通过调用暂停()

我不明白这有什么问题,所以如果你们能帮我,我会非常高兴

这是密码

<html>
<head>
    <script src="nui://game/ui/jquery.js" type="text/javascript"></script>
    <script>
        var audioPlayer = null;

        window.addEventListener('message', function(event) {
            if (event.data.transactionType == "playSound") {

              if (audioPlayer != null) {
              audioPlayer.pause();
              }

              audioPlayer = new Audio("./sounds/" + event.data.transactionFile + ".ogg");
              audioPlayer.volume = event.data.transactionVolume;

              audioPlayer.play();


            }
        });
    </script>
</head>

var audioPlayer=null;
window.addEventListener('message',函数(事件){
if(event.data.transactionType==“播放声音”){
if(audioPlayer!=null){
audioPlayer.pause();
}
audioPlayer=新音频(“./sounds/”+event.data.transactionFile+”.ogg”);
audioPlayer.volume=event.data.transactionVolume;
audioPlayer.play();
}
});

我自己玩声音时也有这个问题。下面的代码为我修复了它:

var soundPromise = audioPlayer.play();

//If the promise exists
if (soundPromise != undefined) {

    soundPromise.then(function(_) {
        //Pause and reset the sound
        sound.pause();
        sound.currentTime = 0;

    });

}

如果您有任何问题,请告诉我

这是浏览器中的自动播放问题:简而言之,如果您不进行某些操作(例如单击、触摸),浏览器将不允许媒体自动开始播放

可参考:

要修复此问题,应将调用
.play()
放在单击按钮的回调函数中,例如

playBtn.onclick = function(){
  audioPlayer.play();
}

这不是一个问题,实际上是一条规则。

这不是一个自动播放-你会看到OP给我们的错误是
播放()请求被暂停()的调用中断了。
。我几乎连续两个小时都在盯着这个代码,我不明白如何在我现在的代码中实现这一点。我有点笨,所以如果你能再帮我一次,我真的很感激你。把它放在你呼叫的任何地方。
。pause()
@JackBashford在你呼叫
sound.pause()的那一行-您从何处获得
声音
变量?这就是OP使用的声音-这只是一个占位符示例。