16

我从这里读到我如何在 webrtc 中为本地流静音/取消静音麦克风:WebRTC 提示和技巧

当我启动我的 localstream 麦克风时,默认情况下是启用的,所以当我设置 audioTracks[0].enabled=false 时,它​​会在我的本地流中静音一个麦克风,但是当我将它设置回 true 时,它​​启用取消静音。这是我的本地流静音/取消静音代码:

 getLocalStream(function (stream,enable) {
        if (stream) {
            for (var i = 0; i < stream.getTracks().length; i++) {
                var track = stream.getAudioTracks()[0];
                if (track)
                    track.enabled = enable;
                //track.stop();
            }
        }
    });

有人可以建议我如何在本地流中取消麦克风静音。

4

5 回答 5

28

我假设您的方法getLocalStream实际上是在调用navigator.getUserMedia. 在这种情况下,当您这样做时,您将获得另一个流,而不是原始流。使用你应该做的原始流

mediaStream.getAudioTracks()[0].enabled = true; // or false to mute it.

或者,您可以查看https://stackoverflow.com/a/35363284/1210071

于 2016-02-20T11:41:22.730 回答
4

有 2 个属性enabledmuted. enabled是用来设置的,muted在远端(对方)是只读的(我试过了,设置muted不起作用,基本上不能改值)

stream.getAudioTracks()[0].enabled = true;//远程一个将得到muted改变

于 2018-04-29T00:28:57.883 回答
3

啊,有一个好方法可以做到这一点:

mediaStream.getVideoTracks()[0].enabled = !(mediaStream.getVideoTracks()[0].enabled);
于 2016-02-19T19:09:02.070 回答
1

您应该阅读并设置“启用”值。“启用”值用于“静音”。“静音”值是与流当前是否无法播放有关的只读值。

MediaStreamTrack 接口上的 enabled 属性是一个布尔值,如果允许轨道呈现源流,则为 true,否则为 false。这可用于有意使轨道静音。启用后,轨道的数据会从源输出到目标;否则,输出空帧。

在音频的情况下,禁用的轨道会生成静音帧(即,每个样本的值为 0 的帧)。对于视频轨道,每一帧都完全用黑色像素填充。

enabled 的值本质上代表了典型用户对轨道静音状态的看法,而 muted 属性表示轨道暂时无法输出数据的状态,例如帧丢失的情况在途中。

于 2020-04-01T07:20:58.887 回答
-1

步骤 1) 调用 jquery.min.js

第 2 步)使用下面的代码,

A) 静音

$("video").prop('muted','true');

B) 取消静音

$("video").prop('muted','');

像 youtube 一样的单个图标静音和取消静音

function enablemute(thisimag) { 
  if($(thisimag).attr('src')=='images/mute.png')
  {   
    $("video").prop('muted','');
    $(thisimag).prop('src','images/unmute.png');
  }
  else
  {
      //alert('her');
    $("video").prop('muted','true');
    $(thisimag).prop('src','images/mute.png');
  } 
} 

上面的函数 enablemute 应该从 onclick 调用

于 2020-10-31T03:09:01.200 回答