首页 文章

如何使用react-native-camera录制视频

提问于
浏览
5

所以我正在开发一个项目,该项目使用了来自https://github.com/lwansbrough/react-native-camera的react-native摄像机并使其工作 . 该组件将采用视频,数据将在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()
  }

}

1 回答

  • 2

    _recordVideo 方法中,您将空对象传递给 camera.capture ,而应传递指定捕获模式的对象 . 试试这个版本的 _recordVideo

    _recordVideo() {
      this.refs.camera.capture({mode: Camera.constants.CaptureMode.video})
        .then((data) => console.log(data))
        .catch((err) => console.log(err))
    }
    

相关问题