如何从iframe中静音?

时间:2017-08-18 12:37:14

标签: html html5 iframe

我正在创建一个关于Elon Musk的致敬页面(对于freecodecamp.com),我想通过属性将他的游戏包含到我的页面中。是否可以将自动播放音频静音?我的页面网址:https://codepen.io/auginis/full/BdwBZW/ 游戏:https://blastar-1984.appspot.com/ 这是代码:

<iframe src="https://blastar-1984.appspot.com/" width="1000px" height="1000px">
  <p>Sorry, your browser does not support this game</p>
</iframe>

2 个答案:

答案 0 :(得分:0)

如果你可以使用Sachin的解决方案,那就去吧,但我很确定它只适用于媒体元素,它只是audiovideo元素,最后我检查过了({{3 }})。但事情变化很快,所以也许你很幸运。

如果您无法在iframe级别更改它,那么您将遇到跨源问题。如果您可以控制要嵌入的应用的标头,spec就是您的朋友。如果您使用该标题放宽对游戏原始页面的限制,那么您的javascript只需要看起来像这样:

var iframe = document.querySelector('iframe[src="https://blastar-1984.appspot.com/"]');
// This code could probably be tidied up, depending on how familiar you are with the game code
iframe.contentDocument.getElementById("muted").checked = true;
iframe.contentWindow.speaker[0].muted = true
iframe.contentWindow.speaker[1].muted = true

但是,如果你没那么幸运,那么同样的原产地政策可能会让你失败。在这种情况下,我建议制作一个div,并在点击“播放”时将其替换为iframe(请参阅代码段中的懒惰CSS):X-Frame-Origins。这为您提供了额外的好处,即在用户不需要之前不加载内容(这对性能/移动浏览器有利)。

祝你好运!

答案 1 :(得分:-1)

您可以通过JavaScript将其静音。

这是你的html iframe使用ID。

<iframe src="https://blastar-1984.appspot.com/" width="1000px" height="1000px" id="iframeId">
  <p>Sorry, your browser does not support this game</p>
</iframe>

在getElementById

中添加您的iframe ID
<script type="text/javascript">
    myVid=document.getElementById("iframeId");
    myVid.muted=true;
</script>

通过使用此功能,您可以将音频静音