【问题标题】:AbortError: The play() request was interrupted by a call to pause()AbortError: play() 请求被对 pause() 的调用中断
【发布时间】:2018-12-12 02:06:00
【问题描述】:

iam currenlty 试图修复这个 javascript 代码,但我似乎无法正确解决它仍然抛出

Uncaught (in promise) AbortError: play() 请求被中断 通过调用 pause()

我不明白这有什么问题,所以如果你们能帮助我,我会真的很高兴

这是代码

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

【问题讨论】:

    标签: javascript html audio promise playback


    【解决方案1】:

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

    var soundPromise = audioPlayer.play();
    
    //If the promise exists
    if (soundPromise != undefined) {
    
        soundPromise.then(function(_) {
            //Pause and reset the sound
            sound.pause();
            sound.currentTime = 0;
    
        });
    
    }
    

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

    【讨论】:

    • Iam littarly 一直盯着这段代码看了 2 个小时,我不明白如何将它实现到我现在拥有的代码中。我有点脑残,所以如果你能再帮我一次,我真的很感激。
    • 把它放在你打电话的任何地方.pause()
    • @JackBashford 在您调用sound.pause(); 的那一行 - 您从哪里获得sound 变量?
    • 这就是 OP 使用的任何声音 - 这只是一个占位符示例。
    【解决方案2】:

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

    可以参考:https://developers.google.com/web/updates/2017/09/autoplay-policy-changes

    要解决这个问题,你应该把.play()的调用放在点击按钮的回调函数中,例如

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

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

    【讨论】:

    • 这不是自动播放 - 你会看到 OP 给我们的错误是 the play() request was interrupted by a call to pause()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多