问题 无法在Firefox中将HTML5视频标记静音


我想和webrtc进行视频通话。我有两个流,一个是本地的,另一个是远程流。

在Chrome中,我将我的视频标签静音,以便不听到导致回声的声音。我的HTML标签就像;

<video style="position:absolute;right:5px;bottom:5px;display: inline;" class="localVideo" autoplay="autoplay" 
muted="true" 
src="mediastream:3ffffe01-da89-44d9-b9cf-454b11ec6a6a" height="25%" width="25%"></video>

在Firefox中 静音=“真” 财产不工作,所以我听到自己的声音。我尝试在其他主题中设置多种方式的静音...

var video = document.querySelector("#movie");     
video.muted = true;

这段代码片段与jquery的不同变体没有用。

然后我决定在视频标签中添加controls属性,以便观察Firefox控制按钮的工作原理。我已经看到Firefox控制器上的静音按钮也不起作用。

使用Windows 7 - 8.1,带有Yosemite的macOS的Firefox 35和Firefox ESR 31.5都会出现此问题。我通过webrtc库localStream获取媒体流。

这是一个已知问题,如果有,有什么解决方法可以解决这个问题吗?

谢谢。


4459
2018-02-27 09:57


起源

你用哪个库?或者如果您自己编写代码,请分享一些有用的代码。很难说为什么它会失败,因为这个属性在Chrome和FF中都适用于我。另请分享操作系统和FF版本。 - igorpavlov
我添加了一些信息。谢谢! - Uğurcan Şengit
你的视频没有id =“movie”。首先给它一个ID。还尝试在控制台中执行以下代码:document.getElementById(“movie”)。muted = true - igorpavlov
添加的代码片段说明了我尝试过的方式。我没有使用过电影ID。谢谢你的回复。 - Uğurcan Şengit
所以请尝试临时添加一个id并执行我在控制台中提供的代码。也许你的图书馆在FF中取消静音视频标签。 - igorpavlov


答案:


我也遇到过Firefox这个问题,我发现最简单的解决方案是使用 onloadedmetadata 事件如下:

video {
  width: 200px;
  height: 200px;
}
<video
  src="https://scontent-lhr3-1.cdninstagram.com/t50.2886-16/12930587_1020784647992081_252978711_n.mp4"
  muted
  onloadedmetadata="this.muted = true"
  onmouseenter="play()"
  onmouseleave="pause()">


12
2017-07-14 22:49



完美,对我来说很好! - Danmoreng


注意:这里有一个更好的答案

我在FF45中也有这个问题。解决方案是在代码与DOM中设置静音。

$("#browserCheck").get(0)
<video id="browserCheck" class="img-responsive" autoplay="" muted="true">
$("#browserCheck").get(0).muted
false
$("#browserCheck").get(0).muted = true
true
$("#browserCheck").get(0).muted
true

2
2018-03-28 21:53





我也无法使用Firefox静音视频。 Chrome没问题。我通过将音量设置为零来解决Firefox问题。同样的净效应?

var video = document.querySelector("#movie");     
video.volume = 0;

1
2017-09-06 03:51