如何使用react-native-camera

时间:2016-07-17 23:26:00

标签: video reactjs react-native video-capture react-native-camera

所以我正在开发一个项目,该项目使用来自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()
  }

}

3 个答案:

答案 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中请求音频许可。