【原创】解决React Native报错:Error: recordAsync: Expected a Camera component

blogdaren 2018-07-15 抢沙发 1825人次

问题背景:

使用 React-Native-Camera组件的视频录制功能, 调用 this.camera.recordAsync(options) 方法,结果报错:

07-15 11:35:38.981 15178 16781 W ReactNativeJS: Error: recordAsync: Expected a Camera component
07-15 11:35:38.981 15178 16781 W ReactNativeJS: createErrorFromErrorData@http://localhost:8081/index.delta?platform=android&dev=true&minify=false:2253:26
07-15 11:35:38.981 15178 16781 W ReactNativeJS: http://localhost:8081/index.delta?platform=android&dev=true&minify=false:2205:51
07-15 11:35:38.981 15178 16781 W ReactNativeJS: __invokeCallback@http://localhost:8081/index.delta?platform=android&dev=true&minify=false:2641:23
07-15 11:35:38.981 15178 16781 W ReactNativeJS: http://localhost:8081/index.delta?platform=android&dev=true&minify=false:2392:34
07-15 11:35:38.981 15178 16781 W ReactNativeJS: __guard@http://localhost:8081/index.delta?platform=android&dev=true&minify=false:2544:15

问题原因:

adb logcat | grep -i  reactnative 查看日志,根本原因是没有获取用户对APP的相关授权所致【比如相机、存储、麦克风权限等】

解决方案:

赋予APP所需的相关权限,建议使用 React-Native-Permissions 组件来处理。

注意事项:

1. 确保在调用 this.camera.recordAsync() 之前,this.camera 已经正确加载

2. 确保在调用 this.camera.recordAsync() 之后,适时的调用 this.camera.stopRecording() 方法

3. 在github issue上金牛座也有针对此问题的论证以及回复:

    https://github.com/react-native-community/react-native-camera/issues/1408#issuecomment-404998609

版权声明:除非注明,本文由( blogdaren )原创,转载请保留文章出处。

本文链接:【原创】解决React Native报错:Error: recordAsync: Expected a Camera component

发表评论:

您的昵称:
电子邮件:
个人主页:

Free Web Hosting