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