我正在测试新的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;
,但它不起作用。
答案 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 );
希望这会有所帮助。