如何覆盖Windows Phone应用程序中的相机按钮?

时间:2013-02-10 09:44:56

标签: windows-phone-7 windows-phone-7.1 windows-phone-8 windows-phone windows-phone-7.1.1

市场上有一款名为Flashlight-X的应用程序会覆盖此按钮,允许用户打开/关闭手机的LED闪光灯。无论你做什么,按下该应用程序内的相机按钮都不会启动相机应用程序。你是如何实现这一目标的?

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:-1)

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

此致