7

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

}
4

3 回答 3

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))
}
于 2017-01-01T04:47:26.460 回答
2

其实现在变了,你只需要使用这个recordAsync()功能就可以开始录制了。

stopRecording()停止录制。

返回应用程序缓存的recordAsync()文件 uri(.mp4 格式),您可以将其重用于您的应用程序。享受

于 2020-07-20T10:18:17.767 回答
0
recordOptions: {mute: false }

设置此项以获取音频并在 android 和 ios 中请求音频权限。

于 2020-09-25T09:52:56.440 回答