ここから、webrtcでローカルストリームのマイクをミュート/ミュート解除する方法を読みました: WebRTCのヒントとコツ
ローカルストリームを開始すると、マイクはデフォルトで有効になっているため、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();
}
}
});
ローカルストリームでマイクのミュートを解除する方法を誰かに提案してもらえますか?.
あなたのメソッドgetLocalStream
が実際にnavigator.getUserMedia
を呼び出していると思います。この場合、これを行うと、元のストリームではなく、別のストリームが取得されます。元のストリームを使用して行う必要があります
mediaStream.getAudioTracks()[0].enabled = true; // or false to mute it.
または、チェックすることもできます https://stackoverflow.com/a/35363284/1210071
enabled
とmuted
の2つのプロパティがあります。 enabled
は設定用で、muted
はリモート側(他の人)では読み取り専用です(試しましたが、muted
の設定は機能しません。基本的に、値は機能しません。変更される)
stream.getAudioTracks()[0].enabled = true;
//リモートのものはmuted
変更を取得します
ああ、これを行うための良い方法があります:
mediaStream.getVideoTracks()[0].enabled = !(mediaStream.getVideoTracks()[0].enabled);
「有効」の値を読んで設定する必要があります。 「有効」の値は「ミュート」用です。 「ミュート」値は、ストリームを現在再生できないかどうかに関係する読み取り専用の値です。
MediaStreamTrackインターフェイスのenabledプロパティはブール値であり、トラックがソースストリームのレンダリングを許可されている場合はtrue、許可されていない場合はfalseです。これは、トラックを意図的にミュートするために使用できます。有効にすると、トラックのデータがソースから宛先に出力されます。それ以外の場合は、空のフレームが出力されます。
オーディオの場合、無効にされたトラックは無音のフレーム(つまり、すべてのサンプルの値が0であるフレーム)を生成します。ビデオトラックの場合、すべてのフレームは完全に黒いピクセルで埋められます。
Enabledの値は、本質的に、一般的なユーザーがトラックのミューティング状態と見なすものを表しますが、mutedプロパティは、フレームが失われたシナリオなど、トラックが一時的にデータを出力できない状態を示します。輸送中。