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