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