如何处理我从“chrome.tabCapture”获得的媒体流?

时间:2014-03-05 05:25:42

标签: javascript html5 google-chrome google-chrome-extension streaming

我正在测试新的chrome API“chrome.tabCapture”。它返回本地媒体流,但是我可以对媒体流做什么?它可以变成一种视频类型还是直接播放。

var obj = {
    audio: false,
    video: true

};
chrome.tabCapture.capture(obj, function (stream) {
// what to do with the stream?  
});

我尝试了var url = window.URL.createObjectURL(stream); video.src = url;,但它不起作用。

3 个答案:

答案 0 :(得分:1)

看起来你应该能够使用MediaRecorder将LocalMediaStream录制到blob,但我认为chrome还没有MediaRecorder,所以你所能做的只是将流放回视频标签或webRTC连接

http://dart-gde.github.io/chrome_gen.dart/ext/chrome.src.common_exp/LocalMediaStream.html https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder_API

这个git树可能有帮助,因为它有跨浏览器代码 https://github.com/streamproc/MediaStreamRecorder

var video = document.createElement('video');
video.src = URL.createObjectURL(mediaStream);
video.play();

答案 1 :(得分:1)

从此链接下载并安装 tabcapture示例扩展程序

https://developer.chrome.com/extensions/samples#search:tabcapture

检查eventPage.js和receiver.js。

同时检查

https://www.w3.org/TR/mediastream-recording/

https://developers.google.com/web/updates/2016/01/mediarecorder

你可以从中得到一些想法。

答案 2 :(得分:0)

这是非常基本的用法。在startStream函数中,您可以添加侦听器并处理流。

var obj = {
    audio: false,
    video: true
};

 function startStream(stream){ 
     var streamObject = new MediaRecorder(stream);    

     streamObject.ondataavailable = function(blob){
       video.src = URL.createObjectURL(blob.data);
     }
}

chrome.tabCapture.capture(obj, startStream );

希望这会有所帮助。