如何阻止chrome捕获标签?

时间:2015-01-15 06:13:48

标签: javascript google-chrome google-chrome-extension webrtc chromecast

我正在尝试构建类似于chromecast的Chrome扩展程序。我正在使用chrome.tabCapture成功启动音频/视频流。如何停止屏幕截图?我想要一个停止按钮,但我不知道该怎么叫来阻止它。我可以停止LocalMediaStream,但选项卡仍在捕获,不允许我在不关闭选项卡的情况下启动新的捕获。我可能错过了任何建议或api页面?

1 个答案:

答案 0 :(得分:3)

尝试stream.getVideoTracks()[0].stop();停止捕获屏幕。要记录使用chrome.tabCapture API捕获的流,您可以使用RecordRTC.js

var video_constraints = {
    mandatory: {
        chromeMediaSource: 'tab'
    }
};
var constraints = {
    audio: false,
    video: true,
    videoConstraints: video_constraints
};

chrome.tabCapture.capture(constraints, function(stream) {
    console.log(stream)
    var options = {
        type: 'video',
        mimeType : 'video/webm',
        // minimum time between pushing frames to Whammy (in milliseconds)
        frameInterval: 20,
        video: {
            width: 1280,
            height: 720
         },
         canvas: {
            width: 1280,
            height: 720
         }
     };
     var recordRTC = new RecordRTC(stream, options);
     recordRTC.startRecording();

    setTimeout(function(){
        recordRTC.stopRecording(function(videoURL) {
            stream.getVideoTracks()[0].stop();
            recordRTC.save();
         });
    },10*1000);
});

我希望上面的代码段可以帮助您:)

编辑1:更正了RecordRTC初始化。