CameraBase: Camera service died! CameraFramework: Error 100

 最近在搞SD卡的热插拔功能,发现有些设备拔掉SD卡后,视频的预览画面会卡死,大概就是Camera service died;CameraFramework: Error 100这些错误,日志如下所示:

02-22 11:20:26.293 2353-2371/com.example.reach.reachlive D/Camera-JNI: Out of buffers, clearing callback!
02-22 11:20:26.295 2353-2353/com.example.reach.reachlive I/CameraFramework: handleMessage: 16
02-22 11:20:26.295 2353-2353/com.example.reach.reachlive D/Camera-JNI: Adding callback buffer to queue, 1 total
02-22 11:20:26.324 2353-2721/com.example.reach.reachlive W/MediaMetadataRetriever: MediaMetadataRetriever server died!
02-22 11:20:26.324 2353-2721/com.example.reach.reachlive W/CameraBase: Camera service died!
02-22 11:20:26.324 2353-2721/com.example.reach.reachlive W/CameraBase: mediaserver's remote binder Camera object died
02-22 11:20:26.325 2353-2353/com.example.reach.reachlive I/CameraFramework: handleMessage: 1
02-22 11:20:26.325 2353-2353/com.example.reach.reachlive E/CameraFramework: Error 100

 

解决方法也很简单,只要在Camera初始化后,然后添加报错的回调监听:

mCamera.setErrorCallback(callback);

然后在回调里重新将Camera初始化即可,代码如下:

Camera.ErrorCallback callback = new Camera.ErrorCallback() {
        @Override
        public void onError(int error, Camera camera) {
            switch (error) {
                case Camera.CAMERA_ERROR_SERVER_DIED:
                    Log.e("error", "Camera.CAMERA_ERROR_SERVER_DIED");
                    //这里重新初始化Camera即可
                    break;
                case Camera.CAMERA_ERROR_UNKNOWN:
                    Log.e("error", "Camera.CAMERA_ERROR_UNKNOWN");
                    break;
            }
        }
    };

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值