gpt4 book ai didi

windows-phone-7 - 尝试访问 Microsoft.Phone.Media.Extended 时反射失败

转载 作者:行者123 更新时间:2023-12-01 10:58:21 26 4
gpt4 key购买 nike

我正在为 Windows Phone 8 在 Silverlight 中开发一个 Flash Light 应用程序。目前我深深陷入了使用“Microsoft.Phone.Media.Extended”程序集的一个问题。适用于 Windows Phone 7 的手电筒应用程序已在 Windows Phone Marketplace 中上线,它在 Windows Phone 7 上运行良好,但由于“Microsoft.Phone.Media.Extended”dll 而不适用于 Windows Phone 8。

将 WP7 应用程序转换为 wp8 并运行后,我收到了此类错误消息:

Could not load file or assembly 'Microsoft.Phone.Media.Extended,Version=7.0.0.0, Culture=neutral, PublicKeyToken=24eec0d8c86cda1e' or one of its dependencies. The system can not find file specific."

根据 Windows Phone 特定功能的以下链接: http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj206947(v=vs.105).aspx

If you were using reflection to access the API in this assembly, because they were not publicly exposed, your app may fail on a Windows Phone 8 device. Remove the calls to this assembly and use the publicly exposed media API.

我不了解如何使用公开的媒体 API。我在 Windows Phone 7 中使用反射使用 Microsoft.Phone.Media.Extended。是否有任何直接方法可以在 Windows Phone 8 中访问 Microsoft.Phone.Media.Extended 或其他方式来解决这个问题?

谢谢。

============================================= ===========================编辑问题:

你好,

根据线程,我们使用“VideoTorchMode”枚举来打开手电筒。据此,我使用 AudioVideoCaptureDevice 类使用 Windows.Phone.Media.Capture 命名空间和以下代码:

    var objDevice = await AudioVideoCaptureDevice.OpenAsync(CameraSensorLocation.Back, AudioVideoCaptureDevice.GetAvailableCaptureResolution(CameraSensorLocation.Back).First());
objDevice .SetProperty(KnownCameraAudioVideoProperties.VideoTorchMode, VideoTorchMode.On);

我想保持闪光灯亮着但不拍摄视频。所以,我还没有初始化视频捕获代码。问题是,我还没有 WP8,在模拟器中我无法测试它。

任何人都可以确认一旦我输入此代码,我的应用程序将作为 Flashlight-X 工作,其中灯将亮起而不闪烁,并且它不会在 WP8 中崩溃。

谢谢

最佳答案

Microsoft.Phone.Media.Extended 是 WP7 中的一个私有(private) API,并不打算供第 3 方开发人员使用。该 API 不存在或不适用于 WP8。

对于 WP8 手电筒,使用 VideoTorchMode=On 的 AudioVideoCaptureDevice 已知属性。此外,确保通过显示白屏来处理异常或没有相机手电筒的设备等故障。

下面是打开我的 Lumia 820 和 Lumia 920 相机闪光灯的代码示例:

var sensorLocation = CameraSensorLocation.Back;

try
{
// get the AudioViceoCaptureDevice
var avDevice = await AudioVideoCaptureDevice.OpenAsync(sensorLocation,
AudioVideoCaptureDevice.GetAvailableCaptureResolutions(sensorLocation).First());

// turn flashlight on
var supportedCameraModes = AudioVideoCaptureDevice
.GetSupportedPropertyValues(sensorLocation, KnownCameraAudioVideoProperties.VideoTorchMode);
if (supportedCameraModes.ToList().Contains((UInt32)VideoTorchMode.On))
{
avDevice.SetProperty(KnownCameraAudioVideoProperties.VideoTorchMode, VideoTorchMode.On);

// set flash power to maxinum
avDevice.SetProperty(KnownCameraAudioVideoProperties.VideoTorchPower,
AudioVideoCaptureDevice.GetSupportedPropertyRange(sensorLocation, KnownCameraAudioVideoProperties.VideoTorchPower).Max);
}
else
{
ShowWhiteScreenInsteadOfCameraTorch();
}

}
catch(Exception ex)
{
// Flashlight isn't supported on this device, instead show a White Screen as the flash light
ShowWhiteScreenInsteadOfCameraTorch();
}

确保在使用手电筒(ISV_Camera、麦克风和 ID_REQ_BACK_Camera)时向您的 WP8 应用程序添加所需的功能和要求。

关于windows-phone-7 - 尝试访问 Microsoft.Phone.Media.Extended 时反射失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13454422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com