🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 使用Camera录像的常见问题 在Android5.0之前我们一直使用android.hardware.Camera做拍照和录像,然而使用的过程并不是一帆风顺的,我跟着官方Camera文档编码实验,却也遇到了各种各样的问题,下面就来分别说说。  另外,API21开始推荐使用android.hardware.Camera2这个包了。 一、权限问题  使用Camera需要有camera的权限,录像时需要有录制音频的权限,保存相片和视频时需要有操作sdcard的权限。否则,因为权限问题就会报错。有些报错会显示告诉你权限问题,但有些不会,比如下面这个。 ~~~ java.lang.RuntimeException: setAudioSource failed ~~~ 这就是录制音频的权限没有。  下面列出几个必须的权限: ~~~ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-feature android:name="android.hardware.camera" /> <uses-feature android:name="android.hardware.camera.autofocus" /> ~~~ 二、startPreview fails ~~~ mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); ~~~ 一般都是设置上面的Type就好了,但是我的4.0.3的酷派的手机就仍然报错,而4.0.4和4.4的手机都没有问题,我也是找了N多资料,但是最后还是给跪了,应该是硬件问题。  也试了Camera.open()之前将camera置为null,都不行。  三、MediaRecorder﹕ start failed: -19  这个错误出现在我的4.4的5太子上。  任我怎么修改也不行,最后用了其他人的代码才终于跑起来。  > 参考:[http://blog.csdn.net/shen332401890/article/details/8819564](http://blog.csdn.net/shen332401890/article/details/8819564) 总结:  众多的API版本使得向下兼容变得很难,在漫长的API1到API21的过程中,不一定哪一个API会跟你惊喜,让你原本预计一个小时的工作变成一天甚至更多。