Вопрос
Я пытался выяснить, почему это не работает в течение некоторого времени. Я использовал много примеров кода, однако я все еще не могу понять это.
Код
takeVideo() {
console.log('started to take video');
this.camera.capture({
audio: true,
mode: Camera.constants.CaptureMode.video,
target: Camera.constants.CaptureTarget.disk
}).then((data) => {
this.setState({ path: data.path });
console.log(data);
}).catch((err) => console.log(err));
}
stopVideo() {
this.camera.stopCapture();
console.log(this.state.path);
}
renderCamera() {
return (
<View>
<Camera
ref={(cam) => {
this.camera = cam;
}}
style={styles.preview}
aspect={Camera.constants.Aspect.fill}
captureTarget={Camera.constants.CaptureTarget.disk}
captureMode={Camera.constants.CaptureMode.video}
>
<TouchableHighlight
style={styles.capture}
onPressIn={this.takeVideo.bind(this)}
onPressOut={this.stopVideo.bind(this)}
underlayColor="rgba(255, 255, 255, 0.5)"
>
<View />
</TouchableHighlight>
</Camera>
</View>
);
}
Что не работает
Когда я console.log(this.state.path)
, он выводит false
, что означает, что он не меняется и видео не записывается.
Информация
- это на айос
- Это работает, если я изменяю
Camera.constants.CaptureMode.video
наCamera.constants.CaptureMode.still
(.video
=>.still
) - Версия РН:
react-native-cli: 2.0.1
react-native: 0.44.0
Репо
Я нашел это репо, которое пытается сделать почти то же самое, что и я, и у него такая же проблема. Вот репозиторий: https://github.com/MiLeung/record
captureTarget= {Camera.constants.CaptureTarget.cameraRoll}
, где вы определяете камеру в рендеринге. - person eden   schedule 12.07.2017captureTarget
на cameraRoll: imgur.com/a/SgJSS - person zoecarver   schedule 12.07.2017