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

曼尼42

我正在使用iframe包含我们从第三方收到的代码的代码。此第三方代码包含一个Canvas并包含使用 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;
  }
}

经过一番研究,我发现您可以在网页中播放声音new Audio([url]),然后play在创建的对象上调用该方法。mute我们使用函数的问题是,如果声音是用 产生的new Audio([url]),它就不会拾取它。

有没有办法从容器中列出Audio已在文档中创建的所有元素,或者是不可能的,并且创建了一种播放音频的方法,而 iframe 容器不可能将其静音?

海道

不,没有办法。

他们不仅可以像你猜的那样使用非附加的 <audio> 元素,而且他们还可以使用 Web Audio API(我认为 phaser 可以),而且如果他们没有公开这样的内容,你也没有办法从外部访问它一个选项。

你最好的办法是询问这个游戏的开发者,它公开了一个你可以控制它的 API。
例如,它可以是 URL ( https://thegame.url?muted=true)中的一些查询参数,甚至是基于Message API 的 API,您可以iframe.contentWindow.postMessage({muted: true})在自己的页面中执行此操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用VBA访问iframe中的对象

使用jQuery静音所有<audio>元素

无法将在Jupyterhub上运行的Jupyterlab嵌入到iframe中

如何使用pydub检测音频流中的静音?

使用Kdenlive将影片剪辑中的某些音频部分静音

将在 onRender() 函数中创建的对象保存在 htmlWidgets 中

仅使用JavaScript创建iframe

如何使用Java在wav文件中检测单词/ audio静音的存在?

将在函数中创建的对象分配给成员变量

使用 wp_audio_shortcode 的 Wordpress 音频

使用Web Audio API缓冲音频

如何使用jQuery操纵iframe对象

隐藏其容器div后如何使用Web音频API停止iframe中的音频?

使用JavaScript代码创建音频对象

一种使用jQuery或CSS静音iframe的方法?

创建将在 React 中保存对象的数据结构

键盘使用iFrame /对象和JQTouch在PhoneGap Build 3.1中隐藏iOS输入字段

如何使用Selenium从iframe中的iframe获取属性src

如何在从父窗口创建的iframe的onload处理程序中获取对iframe的窗口对象的引用

仅将在C ++中定义了operator +的对象作为参数

如何分配将在 C# 中确定运行的对象

使用滚动条创建iframe区域

如何使用变量创建合适的 iframe

无法使用 jquery 创建新的 iframe

是否可以使用 Chrome 中的 Web Audio API 来操作来自 RTCTrackEvent 的音频?

如何在不使用Realtek HD Audio Manager的Windows 10中禁用音频插孔检测?

初始化The Amazing Audio Engine之后,视频录制(使用GPUImage)中没有音频

如何使用 <audio> 元素将上传到 OneDrive 的音频直接嵌入 HTML 中?

使用 XMLHttpRequest 加载多个音频文件并附加在 Web Audio API 中播放