Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Javascript禁用webrtc麦克风?_Javascript_Html_Peerjs - Fatal编程技术网

如何使用Javascript禁用webrtc麦克风?

如何使用Javascript禁用webrtc麦克风?,javascript,html,peerjs,Javascript,Html,Peerjs,大家好,我正在使用Peer Js创建一个WebRtc,就像一个视频通话,我只想创建一个按钮,当用户单击它时,关闭麦克风,此代码在script.Js中: const PRE = "DELTA"; const SUF = "MEET"; var room_id; var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMed

大家好,我正在使用Peer Js创建一个WebRtc,就像一个视频通话,我只想创建一个按钮,当用户单击它时,关闭麦克风,此代码在script.Js中:

const PRE = "DELTA";
const SUF = "MEET";
var room_id;
var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
var local_stream;

function createRoom(){
    console.log("Creating Room")
    let room = document.getElementById("room-input").value;
    if(room == " " || room == "")   {
        alert("Please enter room number")
        return;
    }
    room_id = PRE+room+SUF;
    let peer = new Peer(room_id)
    peer.on('open', (id)=>{
        console.log("Peer Connected with ID: ", id)
        hideModal()
        getUserMedia({video: true, audio: true}, (stream)=>{
            local_stream = stream;
            setLocalStream(local_stream)
        },(err)=>{
            console.log(err)
        })
        notify("Waiting for peer to join.")
    })
    peer.on('call',(call)=>{
        call.answer(local_stream);
        call.on('stream',(stream)=>{
            setRemoteStream(stream)
        })
    })
}

function setLocalStream(stream){
    let video = document.getElementById("local-video");
    video.srcObject = stream;
    video.muted = true;
    video.play();
}
function setRemoteStream(stream){
   
    let video = document.getElementById("remote-video");
    video.srcObject = stream;
    video.play();
}

function hideModal(){
    document.getElementById("entry-modal").hidden = true
}

function notify(msg){
    let notification = document.getElementById("notification")
    notification.innerHTML = msg
    notification.hidden = false
    setTimeout(()=>{
        notification.hidden = true;
    }, 3000)
}

function joinRoom(){
    console.log("Joining Room")
    let room = document.getElementById("room-input").value;
    if(room == " " || room == "")   {
        alert("Please enter room number")
        return;
    }
    room_id = PRE+room+SUF;
    hideModal()
    let peer = new Peer()
    peer.on('open', (id)=>{
        console.log("Connected with Id: "+id)
        getUserMedia({video: true, audio: true}, (stream)=>{
            local_stream = stream;
            setLocalStream(local_stream)
            notify("Joining peer")
            let call = peer.call(room_id, stream)
            call.on('stream', (stream)=>{
                setRemoteStream(stream);
            })
        }, (err)=>{
            console.log(err)
        })

    })
}
这是Html代码:

<div class="entry-modal" id="entry-modal">
        <p>Create or Join Meeting</p>
        <input id="room-input" class="room-input" placeholder="Enter Room ID">
        <div style="display:inline-block;"><br>
            <button onclick="createRoom()" class="create_room">Create room</button><br><br>
            <button onclick="joinRoom()" class="join_room">Join Room</button><br>
        </div>
</div>
<br><br><br>
<div class="meet-area">
    <!-- Remote Video Element-->
    <video id="remote-video"></video>

    <!-- Local Video Element-->
    <video id="local-video"></video>
</div>

创建或加入会议


创建文件室

加入房间



所以我创建了这个按钮:

<button onclick="off()">Off Microphone</button>
关闭麦克风

那么,如何制作一个能够禁用麦克风的脚本呢?

我还没有测试过这个,但是你可以像这样使音频静音

const off=function(){//toggle state
    local_stream.getAudioTracks()[0].enabled = !local_stream.getAudioTracks()[0].enabled;
};

“要实现用户静音和取消静音曲目的方法,请使用enabled属性。”
const off=function(){
    local_stream.getAudioTracks()[0].enabled = false;
};
const on=function(){
    local_stream.getAudioTracks()[0].enabled = true;
};