Как записать видео с помощью камерыact-native-

video reactjs react-native video-capture react-native-camera

6915 просмотра

1 ответ

259 Репутация автора

Поэтому я работал над проектом, в котором использовалась встроенная видеокамера из https://github.com/lwansbrough/react-native-camera, и он работал. Компонент будет снимать видео, и данные будут печататься в консоли XCode. К сожалению, я потерял этот файл и пару других на своем компьютере и запускаю приложение с нуля. Я пытался воссоздать камеру с возможностью записи видео, но не могу заставить ее работать. Кто-нибудь знает, что я делаю неправильно, потому что я не могу понять это. Данные будут распечатаны, когда я переключу режим захвата на камеру, но для видео ничего не произойдет. Вот мой компонент:

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()
  }

}
Автор: hermt2 Источник Размещён: 17.07.2016 11:25

Ответы (1)


3 плюса

51 Репутация автора

В вашем _recordVideoметоде вы передаете пустой объект camera.capture, вместо этого вы должны передать объект, определяющий режим захвата. Попробуйте эту версию _recordVideo:

_recordVideo() {
  this.refs.camera.capture({mode: Camera.constants.CaptureMode.video})
    .then((data) => console.log(data))
    .catch((err) => console.log(err))
}
Автор: Travis Nuttall Размещён: 01.01.2017 04:47
Вопросы из категории :
32x32