反应本机相机记录异步启动失败错误
Posted
技术标签:
【中文标题】反应本机相机记录异步启动失败错误【英文标题】:React native camera recordasync start failed error 【发布时间】:2019-06-03 16:08:40 【问题描述】:当我点击 android 设备 react-native-camera 上的录制按钮时,会抛出错误“启动失败”。
Error: start failed.
at createErrorFromErrorData (NativeModules.js:155)
at NativeModules.js:104
at MessageQueue.__invokeCallback (MessageQueue.js:414)
at MessageQueue.js:127
at MessageQueue.__guard (MessageQueue.js:314)
at MessageQueue.invokeCallbackAndReturnFlushedQueue (MessageQueue.js:126)
at debuggerWorker.js:80
-
已将权限代码添加到 AndroidManifest.xml 文件中
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-
使用 PermissionsAndroid 检查授予所有权限。
尝试通过Link 中提到的质量选项
setCameraReady = () =>
this.setState(
cameraReady: true
);
;
startRecording = async () =>
const cameraReady = this.state;
if (cameraReady)
try
// default to mp4 for android as codec is not set
const uri, codec = 'mp4' = await this.camera.recordAsync(
maxDuration: 30
);
console.log(uri)
catch (error)
console.log(error);
;
stopRecording = () =>
this.camera.stopRecording();
;
<RNCamera
style=cameraStyle
ref=(ref) =>
this.camera = ref;
type=cameraType
mirrorImage=cameraType !== 'back'
androidCameraPermissionOptions=
title: 'Permission to use camera',
message: 'We need your permission to use your camera phone',
buttonPositive: 'Ok',
buttonNegative: 'Cancel'
androidRecordAudioPermissionOptions=
title: 'Permission to use audio recording',
message: 'We need your permission to use your audio',
buttonPositive: 'Ok',
buttonNegative: 'Cancel'
onCameraReady=this.setCameraReady
/>
当 recordAsync 承诺得到解决时应该获取 URI。
【问题讨论】:
我已将范围缩小到与一加安卓相机相关的问题。我已经在三星、Vivo、Oppo 和 Redmi 等多种设备上测试了相同的应用程序,它们都运行良好。但是在 OnePlus 中启动失败错误后,相同的应用程序崩溃。 【参考方案1】:感谢 react-native-camera 团队。
将 react-native-camera 更新到最新版本,即 1.10.0 修复了该问题。
【讨论】:
以上是关于反应本机相机记录异步启动失败错误的主要内容,如果未能解决你的问题,请参考以下文章
命令“npm start”中的问题在第四个 tic-tac-toe@0.1.0 启动脚本中失败。 npm 错误!反应脚本:未找到