2

市场上有一个名为 Flashlight-X 的应用程序,它会覆盖此按钮以允许用户打开/关闭手机的 LED 闪光灯。无论您做什么,按下该应用程序内的相机按钮都不会调出相机应用程序。你如何做到这一点?

我的意思是,我知道如何订阅相机按钮事件,但是如何防止发生默认操作?如覆盖默认行为。

4

3 回答 3

2

在 MSDN 上有一篇文章描述了这一点:
How to access the hardware camera shutter button in Windows Phone

于 2013-02-10T19:02:39.293 回答
1

在 WP7 中,您可以通过使用 Assembly.Load 访问 Microsoft 不受支持的(仅供内部使用)“Microsoft.Phone.Media.Extended”DLL 来执行此操作,然后使用反射访问相机并处理按下快门的事件。不幸的是,这个 DLL 在 WP8 中不存在,并且已被其他媒体 API 取代,这些 API 去除了该程序集的一些复杂性(不需要反射),但也去除了它的一些关键特性(例如,能够使用相机锁屏下的按钮)。

在 WP8 中,您可以使用 AudioVideoCaptureDevice.OpenAsync 来访问相机设备,但相机按钮事件已移至名为 CameraButtons 的静态类。您可以使用这些事件来覆盖应用程序中相机按钮的行为。在此处了解有关它们的更多信息:http: //msdn.microsoft.com/en-us/library/windowsphone/develop/hh202963 (v=vs.105).aspx

于 2013-06-01T02:27:45.360 回答
-1

您不能(您不应该)覆盖特殊按钮(相机、后退、开始、增大音量、减小音量、搜索)的默认行为。

问候

于 2013-02-10T13:06:15.807 回答