Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Windows8JavaScript中关闭相机的正确方法是什么?_Javascript_Windows_Windows Phone 8_Camera - Fatal编程技术网

在Windows8JavaScript中关闭相机的正确方法是什么?

在Windows8JavaScript中关闭相机的正确方法是什么?,javascript,windows,windows-phone-8,camera,Javascript,Windows,Windows Phone 8,Camera,我正在使用javascript中的MediaCapture来捕获我的相机。 我有一个带有initCamera函数的Camera类。问题是,如果我尝试在短时间内重新初始化我的相机,我将得到以下错误:硬件MFT由于缺乏硬件资源而无法启动流媒体。 现在我明白了,这意味着我的相机还在使用。我想知道的是: 如何正确关闭相机 如何检查我的相机是否正在使用或不可用 下面是一段代码: function Camera() { var that = this; thi

我正在使用javascript中的MediaCapture来捕获我的相机。
我有一个带有initCamera函数的Camera类。问题是,如果我尝试在短时间内重新初始化我的相机,我将得到以下错误:
硬件MFT由于缺乏硬件资源而无法启动流媒体。

现在我明白了,这意味着我的相机还在使用。我想知道的是:

  • 如何正确关闭相机
  • 如何检查我的相机是否正在使用或不可用
下面是一段代码:

function Camera() {
    var that = this;              
    this.mediaCaptureElement = null;

    this.initCamera = function() {
        if (!that.mediaCaptureElement) {
        that.mediaCaptureElement = new Windows.Media.Capture.MediaCapture();

        that.mediaCaptureElement.addEventListener("failed", function (e) {
            console.warn("The camera has stopped working");
        }

        that.mediaCaptureElement.initializeAsync().then(function() {
            that.mediaCaptureElement.videoDeviceController.primaryUse = Windows.Media.Devices.CaptureUse.photo;
            that.getCameraResolution();
            that.orientationChanged();
            that.startCamera();
        });
    }
};
当前重新打开相机的方式是使用相机类的新实例覆盖相机实例


提前谢谢。

我在
C#
中使用MediaCapture时遇到了同样的问题

我必须在
stoppereviewasync
之后调用
Dispose()
,以便更正它:

等待CameraController.MediaCaptureInstance.StopReviewSync();CameraController.MediaCaptureInstance.Dispose()

你看到了吗?它也有JS风格

如果您希望在使用完相机后不久能够可靠地访问它,则需要确保正确地清理所有资源。从您共享的代码来看,您似乎让系统来处理这个问题,这意味着您的应用程序可能会在系统关闭所有资源之前返回

你应该注意:

  • 停止可能正在进行的任何录制
  • 停止预览
  • 关闭MediaCapture

查看我上面链接的示例中的,以获取如何实现此功能的示例。

您是否尝试过将其关闭并再次打开?