Javascript 如何在中成功更新HTML音频播放器源,然后在Chrome中运行

Javascript 如何在中成功更新HTML音频播放器源,然后在Chrome中运行,javascript,html,aws-lambda,Javascript,Html,Aws Lambda,我正在建立一个无服务器的网站,后端Lambda函数之一是构造一个s3url,前端使用它来更新嵌入HTML中的音频播放器的源代码 由于前端必须等待Lambda函数完成并返回一个正常工作的URL,因此音频播放器的源将在函数中更新。然后函数: var accessKey = getURLVars()["AccessKey"]; var audioPlayer = document.getElementById('audioURL'); // Handle when the user en

我正在建立一个无服务器的网站,后端Lambda函数之一是构造一个s3url,前端使用它来更新嵌入HTML中的音频播放器的源代码

由于前端必须等待Lambda函数完成并返回一个正常工作的URL,因此音频播放器的源将在函数中更新。然后函数:

  var accessKey = getURLVars()["AccessKey"];
  var audioPlayer = document.getElementById('audioURL');

  // Handle when the user enters a key into the form
  function handleKey() {
    var url = "";

    fetch(apiBaseURL+"/getFileURL", {
      method: "POST",
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        key: accessKey,
      })
    })
    .then(function(response) {
      return response.json();
    })
    .then(function(json) {
      if (json.url === "not_found") {
        // The file was not found
        console.log("File not found");
        .....
      } else {
        // The file was found, update the elements to the new URL
        url = json.url;
        console.log(url);

        audioPlayer.src = url;

        .....
      }
    });
  }
音频播放器:

  <audio controls>
    <source id='audioURL' type="audio/mp3" src=""></source>
    Your browser does not support this audio player.
  </audio>

您的浏览器不支持此音频播放器。
lambda函数返回一个有效的url,检查Chrome中的audio元素表明其源已更新,但音频播放器将不播放。此外,音频播放器更新其源代码,可在Microsoft Edge中播放,但不能在Chrome中播放


我还需要做些什么才能让播放器在Chrome中工作,还是需要使用其他音频播放器?

似乎当音频播放器的源代码更改时,Chrome不会重新加载音频播放器,因此,音频播放器必须在源代码更改后手动加载

“似乎当音频播放器的源代码发生变化时,Chrome不会重新加载音频播放器,因此,音频播放器必须在源代码发生变化后手动加载。”

每当音频或视频标记/对象更改src时,应调用该方法。
。。。
}否则{
//找到文件后,将元素更新为新URL
url=json.url;
console.log(url);
audioPlayer.src=url;
audioPlayer.load();//每当音频或视频标记/对象更改src时,都应调用.load()方法。
.....

}…
如果它在一个浏览器中播放,而不是在另一个浏览器中播放,则可能完全取决于音频文件是什么,以及它是否与您指定的预设mime类型匹配:。你试过其他浏览器吗?有任何控制台错误吗?我刚刚尝试了Chrome和Edge,但任何地方都没有控制台错误。但是,我相信我们发现了问题,Chrome似乎不会在源代码更改时自动重新加载音频播放器,至少在这种情况下不会。不需要手动加载,请参阅我的右侧,手动加载是指调用加载功能。对我来说仍然很奇怪的是,Chrome特别有这个问题,而且只有在这种利基环境下才有这个问题。我相信这是根据