zoukankan      html  css  js  c++  java
  • Windows Phone开发经验谈(3)突破限制开发Windows Phone手电筒(三种方案)

        现在的Windows Phone开发实在是太封闭了,很多功能都无法实现,只有三星、LG、戴尔、Nokia这些厂家能利用Native代码开发应用,目前就HTC开发了手电筒软件发布到了微软市场,但是普通开发者利用native代码就无法提交大市场,当然有很多聪明的开发者不用LED相关的API照样开发出了手电筒应用,下面来讨论几种常用方法。

    一、在应用中创建了一个死循环,无限调用摄像头的Focus()方法,即自动对焦,而摄像头处于对焦状态时LED是亮着的,间接实现了手电筒功能。

    优点:能发布到微软市场.

    缺点:对摄像头损伤大

    二、人类的脑子是无比强大的,有人发现在windows phone有一个Microsoft.Phone.Media.Extended.dll,通过他能调用手机的摄像头,通过录像让闪光灯开启。但是打开vs2010发现根本没有Microsoft.Phone.Media.Extended这个程序集。顺藤摸瓜找到了Den Delimarsky写的两篇文章Not your regular photo and video camera on Windows Phone 7How VideoCamera/PhotoCamera content is saved on Windows Phone 7,前一篇介绍了如何使用PhotoCamera和VideoCamera进行摄像头图像实时显示,后一篇则是介绍怎么取到拍照后的数据,写得很好,通俗易懂。文章中提到:

    通过反射调用摄像头比较慢而且增加多余的代码。所以我转而使用GAC程序集“GAC_Microsoft.Phone.Media.Extended_v7_0_0_0_cneutral_1.dll”,由于是托管代码,所以就不用加上WMInteropManifest.xml文件(或者<Capability Name=”ID_CAP_INTEROPSERVICES”/>)了。

     

    并且提供了GAC Dump(可以看作Windows Phone未开放API程序集的集合)下载。不过没有详细教程,于是搜了一下实现GAC Dump的牛人Thomas Hounsell的Blog,找到了方法 Avoiding Reflection: Adding the InteropServices library to the WP7 SDK。总结起来很简单:

    首先下载Hounsell那篇文章里面的7z文件。

    捡自己需要的放到C:\Program Files\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone,记得改名,把前后下划线前的内容都去掉。比如对于原生摄像头,我们需要Microsoft.Phone.Media.Extended.dll。

    打开RedistList文件夹里面的FrameworkList.xml文件,记得用管理员权限。新增一个File标签(复制之前的就行),程序集名改成你刚刚加入的那个dll的,去掉publicKeyToken属性。保存。

     

    当然还必须执行sn.exe -Vr [dll path]对DLL进行签名.这样就可以使用Microsoft.Phone.Media.Extended.dll了。

    此小节大部分内容参考:http://wei.si/blog/2011/03/access-to-native-camera-apis-on-windows-phone-7

    优点:对摄像头损伤小

    缺点:原来是可以提交到市场,但是现在微软发现了,此类调用已经无法提交到市场了。

    三、俗话说的好你有张良记,我有过墙梯,其实Microsoft.Phone.Media.Extended.dll在windows phone全局缓存中,可以通过反射来调用此程序集,当然这样的速度稍微慢点,不过是可以接受的。

    优点:可以提交到市场,对摄像头损伤小

    缺点:速度稍微慢点。

    好了说了这么多,大家自己研究 研究,有好的方案也不要吝啬拿出来分享吧。博客地址:http://www.cnblogs.com/cracker

  • 相关阅读:
    75. Sort Colors
    101. Symmetric Tree
    121. Best Time to Buy and Sell Stock
    136. Single Number
    104. Maximum Depth of Binary Tree
    70. Climbing Stairs
    64. Minimum Path Sum
    62. Unique Paths
    css知识点3
    css知识点2
  • 原文地址:https://www.cnblogs.com/cracker/p/windowsphone_wp_flashlight.html
Copyright © 2011-2022 走看看