Andriod相机开发关于startPreview Failed的错误的特别记录(重要)

年前,自己做的Android相机嵌入到一款火爆的游戏中去了,经过几次的修改升级,相机运行上报的错误也越来越少,

但是,前几天刚上线的最新相机,却老是在Android 2.3机器上出现startPreview failed的错误,不知为啥,后来,

在网络上搜索,很多人也出现了这个问题,解决的方法是,给holder添加SURFACE_TYPE_PUSH_BUFFERS标记,

可是我明明就已经添加了,却老是在startPreview时抛出异常。

Google 官方文档已经说了,在2.3版本及以下需要手动添加改标记,而以上版本会自动(auto)添加。参考链接:

http://developer.android.com/reference/android/view/SurfaceHolder.html#setType(int)

相关截图:

 

对比我以前最老的相机版本,它在2.3上跑的很正常,只是,给surfaceHolder添加标记时是在它初始化的时候添加的,

而新版本是在 surfaceHolder的回调函数surfaceCreated中设置的。

 

由此,才发现问题所在,我再surfaceHolder创建的时候调用该代码:

if(PhoneInfo.getSdkVersion() <= 10)
     surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

posted @ 2014-04-12 15:38  我是一颗小草  阅读(4493)  评论(1编辑  收藏  举报