【发布时间】:2014-10-03 03:35:28
【问题描述】:
使用适用于 Windows Phone 的 8.1 MediaCapture 类。
已声明“音频”和“网络摄像头”的功能,其中 90% 是导致异常的原因。
Kicker 是,它在 WP 模拟器中完美运行,但在实际设备上中断。
确切的例外是here:
我添加了大量检查以确保我们没有重新初始化已经初始化的相机或尝试在初始化之前读取..等等(因为我认为问题是由以下原因引起的)所以这不太可能就是这样。
private async Task InitializeCameraAsync()
{
if (_isInitialized)
{
Debug.WriteLine("Skipping unnecessary initialization");
return;
}
Debug.WriteLine("Initializing camera media capture...");
_deviceCapture = new MediaCapture();
await _deviceCapture.InitializeAsync(new MediaCaptureInitializationSettings
{
VideoDeviceId = _cameraInfoCollection[_currentVideoDevice].Id,
PhotoCaptureSource = PhotoCaptureSource.VideoPreview,
AudioDeviceId = _microphoneInfoCollection[_currentAudioDevice].Id
StreamingCaptureMode = StreamingCaptureMode.Video
});
Debug.WriteLine("Initialized camera media capture!");
// For code completion only, unlikely to be relevant
// Set up low-lag photo capture
if (IsNotUsingInstantCapture)
{
Debug.WriteLine("Preparing low-lag photo capture");
var imageEncoding = ImageEncodingProperties.CreateJpeg();
imageEncoding.Width = PhotoCaptureWidth;
imageEncoding.Height = PhotoCaptureHeight;
_lowLagPhotoCapture = await _deviceCapture.PrepareLowLagPhotoCaptureAsync(imageEncoding);
}
_isInitialized = true;
Debug.WriteLine("Initialized camera!");
}
_mediacapture 随后被绑定到 xaml CaptureElement 的 .source 以显示预览。
【问题讨论】:
-
该错误听起来与msdn.microsoft.com/en-us/library/windows/apps/hh768223 中描述的行为一致。是否有可能在测试设备上,用户帐户意外拒绝了访问此应用的网络摄像头或麦克风?
-
这是我的第一个,但是,作为 Windows 手机,据我所知,您作为用户无法禁用/启用对上述内容的访问。 AFAIk 这仅在最初从商店安装应用程序时完成?
-
似乎有问题(也与我的设备有关) - 我有一个用于拍照的简单程序并且正在运行,但经过一些更新后现在它无法运行。我也尝试过运行MSDN example,但没有成功。
-
我在 Lumia 620 和 Lumia 1020 上都遇到了完全相同的问题。但值得注意的是,有一段时间我让(前置)摄像头在 620 上工作。更新到最新的开发者预览版后,我又开始出现拒绝访问异常,就像在 1020 上一样。 - 还没有解决方案。
-
这个问题有解决方案了吗?
标签: c# .net camera windows-8.1 windows-phone-8.1