Я пытался заставить работать видео-функцию реагирующей нативной камеры, но пробовал огромное количество методов, но продолжал получать одни и те же ошибки. Вот мой код:
class MainCamera extends Component {
constructor() {
super();
this.render = this.render.bind(this)
this.state = { cameraType: Camera.constants.Type.back }
}
render() {
return (
<View style={styles.container}>
<Camera
ref='camera'
style={styles.preview}
aspect={Camera.constants.Aspect.fill}
type={this.state.cameraType}
captureMode={Camera.constants.CaptureMode.video}
captureAudio={false}
target={Camera.constants.CaptureTarget.disk}>
<TouchableHighlight
onPressIn={this.onPressIn.bind(this)}
onPressOut={this.stopVideo.bind(this)}>
<Icon name="video-camera" size={40} />
</TouchableHighlight>
</Camera>
</View>
);
}
onPressIn() {
recordVideo = setTimeout(this.takeVideo.bind(this), 100);
}
takeVideo() {
this.refs.camera.capture({
target: Camera.constants.CaptureTarget.disk
})
.then(data => {
console.log(data);
})
.catch(err => console.log(err));
}
stopVideo() {
this.refs.camera.stopCapture({})
.then(data => console.log(data))
.catch(err => console.log(err));
}
}
Когда я использую обещание «.then» в методе stopCapture(), я получаю сообщение об ошибке «Невозможно прочитать свойство «then» неопределенного», но если я не добавлю «.then», ничего не происходит, и я не не получают никаких данных. У кого-нибудь есть предложения?