Javascript 使用音频对象在iframe中创建的静音音频

Javascript 使用音频对象在iframe中创建的静音音频,javascript,audio,iframe,Javascript,Audio,Iframe,我正在使用一个iframe,它包含我们从第三方收到的代码。此第三方代码包含画布,并包含使用Phaser创建的游戏 我正在寻找一种方法来静音,这个游戏在某个时候做的声音 我们通常这样做: function mute(node) { // search for audio elements within the iframe // for each audio element,(video, audio) attempt to mute it const videoEls = node.

我正在使用一个
iframe
,它包含我们从第三方收到的代码。此第三方代码包含
画布
,并包含使用Phaser创建的游戏

我正在寻找一种方法来静音,这个游戏在某个时候做的声音

我们通常这样做:

function mute(node) {
  // search for audio elements within the iframe
  // for each audio element,(video, audio) attempt to mute it
  const videoEls = node.getElementsByTagName('video');
  for (let i = 0; i < videoEls.length; i += 1) {
    videoEls[i].muted = true;
  }

  const audioEls = node.getElementsByTagName('audio');
  for (let j = 0; j < audioEls.length; j += 1) {
    audioEls[j].muted = true;
  }
}
功能静音(节点){
//在iframe中搜索音频元素
//对于每个音频元素,(视频、音频)尝试将其静音
const videoEls=node.getElementsByTagName('video');
对于(设i=0;i
经过一些研究,我发现可以使用
newaudio([url])
在网页中播放声音,然后对创建的对象调用
play
方法。 我们使用的
mute
功能的问题是,如果声音是用
新音频([url])
创建的,它不会拾取声音

容器中是否有一种方法可以列出文档中创建的所有
音频
元素,或者这是不可能的,并且可以创建一种播放音频的方法,而iframe容器不可能将其静音?

不,没有方法


它们不仅可以使用非附加,您可以从自己的页面执行
iframe.contentWindow.postMessage({mute:true})

遗憾的是,由于代码可能来自许多不同的开发人员,并且我们与他们之间没有密切的关系,所以这是不可能的。但这回答了我的疑问