android 调试摄像机黑屏问题

918 阅读1分钟

最近在开发一个类似微信发表朋友圈的功能,其中有个拍摄短视频的功能,DEMO上运行没有问题,但是写进项目一调用摄像机就黑屏,其他的UI图确显示出来了,很让人奇怪。后来调试才发现报了一个这样的错误,A TextureView or a subclass can only be used with hardware acceleration enabled.(华为测试机是真坑,报错一开始没有日志,这个问题我在别一篇文章中写过了,这里就不多说了)。

先说下解决方案吧:

在 application级别修改:

<application android:hardwareAccelerated="true"
 ...>

在 activity 级别修改:

<activity android:hardwareAccelerated="true"
 />

在 window 级别修改:

 getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
 WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

我是因为这项目刚接手,前辈就是在application里面给设置成了false,坑了我两天,尴尬啊!

基本上如果你想让你的TextureView进行硬件加速,你必须保证硬件加速在TextureView的上下文的一些级别上是可用的,硬件加速事实上使用TextureView进行托管:TextureView 仅仅可以在被硬件加速的窗口去使用. 在软件中渲染时, TextureView什么也不会做。