Windows 8(JavaScript):具有相同网络摄像头源的多个<video>标签:可能?</video>

时间:2012-05-09 02:34:46

标签: javascript windows windows-8 windows-runtime

我正在使用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不起作用。想法?

谢谢!

1 个答案:

答案 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的模拟,这将是徒劳的。