所以我正在开发一个项目,该项目使用来自https://github.com/lwansbrough/react-native-camera的反应原生摄像机并使其正常工作。该组件将采用视频,数据将在Xcode的控制台中打印。不幸的是,我在计算机上丢失了这个文件和其他几个文件,并且从头开始重新启动应用程序。我一直试图重新创建具有视频录制功能的摄像机,但却无法使其正常工作。有人知道我做错了什么,因为我似乎无法弄明白。当我将captureMode更改为相机时,数据将打印出来,但视频不会发生任何事情。这是我的组成部分:
let startVideo = false;
class VideoCamera extends Component {
constructor() {
super()
this.state = {
captureMode: Camera.constants.CaptureMode.video,
}
}
render() {
return (
<Camera
captureMode={this.state.captureMode}
ref="camera"
style={styles.container}
>
<TouchableHighlight
onPressIn={this._startRecord.bind(this)}
onPressOut={this._endVideo.bind(this)}
>
<Icon
name={'video-camera'}
size={40}
style={styles.recordButton}
/>
</TouchableHighlight>
</Camera>
)
}
_startRecord() {
startVideo = setTimeout(this._recordVideo.bind(this), 50)
}
_recordVideo() {
this.refs.camera.capture({})
.then((data) => console.log(data))
.catch((err) => console.log(err))
}
_endVideo() {
this.refs.camera.stopCapture()
}
}
答案 0 :(得分:3)
在_recordVideo
方法中,您将空对象传递给camera.capture
,而应传递指定捕获模式的对象。试试这个版本的_recordVideo
:
_recordVideo() {
this.refs.camera.capture({mode: Camera.constants.CaptureMode.video})
.then((data) => console.log(data))
.catch((err) => console.log(err))
}
答案 1 :(得分:0)
实际上,现在它已更改,只需要使用recordAsync()
功能就可以开始录制。
和stopRecording()
停止录制。
recordAsync()
返回应用程序缓存的文件uri(.mp4格式),您可以将其重复用于应用程序。享受
答案 2 :(得分:0)
recordOptions: {mute: false }
设置此项以获取音频,并同时在android和ios中请求音频许可。