我正在使用JavaScript开发一个metro应用程序,并尝试同时显示来自网络摄像头的两个视频(其中一个最终将应用过滤器)。但是,每当我尝试将它们设置为使用网络摄像头作为源时,我都会收到错误,,,,有没有办法处理这种情况?
谢谢!
编辑:这是一些代码:
(JavaScript)的
var mediaCaptureMgr = new Windows.Media.Capture.MediaCapture();
var captureInitSettings = new Windows.Media.Capture.MediaCaptureInitializationSettings();
//...set properties of captureInitSettings...
mediaCaptureMgr.initializeAsync(captureInitSettings).then(function (result) {
var video1 = id("Video1"); //function to get html element with id
video1.src = URL.createObjectURL(mediaCaptureMgr, false); //does not matter if false is switched to true
var video2 = id("Video2");
video2.src = video1.src;//could also use var x = URL.create... then set video1.src/video2.src = x; still won't work.
},
errorHandler);
(HTML)
<video id="Video1" autoplay></video>
<video id="Video2" autoplay></video>
我可以通过Click事件或Load事件触发JS - 无所谓 - 只有Video1获取网络摄像头视频。 Video2不起作用。想法?
谢谢!
答案 0 :(得分:1)
最近在Chrome浏览器中以类似的方式玩过getUserMedia,我想知道Metro中的画布是否适合你的第二个视频播放,因为你正计划进行过滤,看起来你可能有无论如何走这条路?
那就是说,我对Metro javascript环境一无所知,但是看看你的例子并知道如何在支持的浏览器中做到这一点:
var video1 = id("Video1");
var canvas = id('canvas');
var context = canvas.getContext('2d');
context.drawImage(video1, 0, 0);
当然,这只有在你为每一帧视频绘制图像时才有效,如果有window.requestAnimationFrame
的模拟,这将是徒劳的。