Javascript 停止录制后删除红色图标

Javascript 停止录制后删除红色图标,javascript,jquery,Javascript,Jquery,我正在使用recording.js。该功能运行良好,但在我停止录制后,红色图标仍然出现在chrome的选项卡(靠近标题)中。请建议怎么做。 很抱歉,这太简单了P 这是我的代码: window.URL = window.URL || window.webkitURL; navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia ||

我正在使用recording.js。该功能运行良好,但在我停止录制后,红色图标仍然出现在chrome的选项卡(靠近标题)中。请建议怎么做。 很抱歉,这太简单了P

这是我的代码:

window.URL = window.URL || window.webkitURL;
    navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia;

    var recorder;
    var savedSrc = '';
    var audio = document.querySelector('audio');

var onFail = function(e)
    {
        console.log('Rejected!', e);
    };

    var onSuccess = function(s)
    {
        var context = new AudioContext();
        var mediaStreamSource = context.createMediaStreamSource(s);
        recorder = new Recorder(mediaStreamSource);
        recorder.record();
        $('#recordText').html('Recording...');
        // audio loopback
        // mediaStreamSource.connect(context.destination);
    };



    function startRecording()
    {
        if (navigator.getUserMedia)
        {
            navigator.getUserMedia(
            {
                video : false,
                audio : true,
                toString : function()
                {
                    return "audio";
                }
            }, onSuccess, onFail);
        }
        else
        {
            console.log('navigator.getUserMedia not present');
        }

    };

    function stopRecording()
    {
        $('#recordText').html('Record');
        recorder.stop();
        recorder.exportWAV(function(s)
        {

            audio.src = window.URL.createObjectURL(s);
        });
    }
这是一个,而不是一个网站功能。它将一直存在,直到您关闭选项卡,表示“此选项卡可以访问或使用麦克风或网络摄像头”

在撰写答案时,没有办法删除该图标。您现在可以在录制停止后删除它。 检查@akaravashkin的答案,我还没有测试过它。

这是一个网站功能,而不是一个网站功能。它将一直存在,直到您关闭选项卡,表示“此选项卡可以访问或使用麦克风或网络摄像头”

在撰写答案时,没有办法删除该图标。您现在可以在录制停止后删除它。
检查@akaravashkin的答案,我还没有测试过它。

要在使用Recorder.js后删除红色图标:

var audioStream;    
var onSuccess = function(s) {
    ...
    audioStream = s;
}

function stopRecording() {
   ...
   audioStream.getTracks()[0].stop();
}
getTracks()只返回一个元素,因为您在配置中只使用音频


我希望它能帮助别人。

在使用Recorder.js后删除红色图标:

var audioStream;    
var onSuccess = function(s) {
    ...
    audioStream = s;
}

function stopRecording() {
   ...
   audioStream.getTracks()[0].stop();
}
getTracks()只返回一个元素,因为您在配置中只使用音频


我希望它能帮助一些人。

您可以使用getUserMedia的成功处理程序中返回的stream对象直接结束流。 范例


您可以使用getUserMedia的成功处理程序中返回的stream对象直接结束流。 范例


这意味着您的浏览器正在保存麦克风流的活动实例。 下面给出的解决方案可以成为你思考的食物。 解决方案: 在分配音频流时,请确保将对它的引用分配给windows变量,并在需要时控制它(停止)

看看我的代码对你是否有意义,它在我的情况下工作。确保在停止后重新分配流,否则在停止时会出现异常并完全销毁现有实例。(请相应地修改代码)


这意味着您的浏览器正在保存麦克风流的活动实例。 下面给出的解决方案可以成为你思考的食物。 解决方案: 在分配音频流时,请确保将对它的引用分配给windows变量,并在需要时控制它(停止)

看看我的代码对你是否有意义,它在我的情况下工作。确保在停止后重新分配流,否则在停止时会出现异常并完全销毁现有实例。(请相应地修改代码)


我对recording.js没有任何线索,但红色图标是一个chrome功能,表示选项卡使用麦克风,请确保您确实正确停止了它(阅读recording.js文档),您无法控制红色按钮。我对recording.js没有任何线索,但红色图标是一个chrome功能,表示选项卡使用麦克风,请确保您确实正确地停止了它(阅读recording.js文档),您无法控制红色按钮。但是,一旦我停止了录制,它就应该被删除。但是一旦我停止了录制,它就应该被删除。我如何在用户“录制”按钮上再次显示它?如何在用户“录制”上再次显示它按钮点击?
// Excerpt from my reactjs code
async function requestRecorder() {
  const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
  window.localStream=stream;
  return new MediaRecorder(stream);
}

  const stopRecording = () => 
  {
    //release mic resource and hence red icon is removed
    window.localStream.getTracks()[0].stop();

  };