IOS 上的 react-native-video 自动重复问题

react-native-video auto repeat issue on IOS

我正在开发显示视频的 React 本机应用程序。我使用了 react-native-video 包。当视频页面打开时,视频将自动开始一次,视频结束后不应重复。它在 android 上运行良好,但在 IOS 上,视频会自动从头开始并不断重复。这是我在视频结束后停止视频的代码:

  const onEnd = () => {
   setState({ ...state, play: false, showControls: true });
   if (videoRef.current) {
     videoRef.current.seek(0);
   }
  };

我该如何解决这个问题?

判断视频播放结束是否重复

false(默认)- 不重复视频 true - 重复视频

最简单的方法

<Video
      onEnd={() => {
      this._video.seek(0);
      this.setState({ pauseVideo: !this.state.pauseVideo })
      }}
      repeat={false}
      paused={this.state.pauseVideo}
      key={(item, index) => index.toString()}
      source={{ uri:"url" }}
      onBuffer={(data) => {
           if (data.isBuffering) {
             this.setState({ loading: true });
           } else {
             this.setState({ loading: false });
           }
           }}
      onLoad={() => this.setState({ loading: false })}
      onLoadStart={() => this.setState({ loading: true })}
      resizeMode="contain"
      style={{ height: "100%", width: "100%" }}/>

ios/Video/RCTVideo.m

        [item seekToTime:kCMTimeZero];
        [self applyModifiers];
      } else {
        [self setPaused:true]; //`add this line to RCTVideo.m`
        [self removePlayerTimeObserver];
      }
    }

我通过删除这行代码解决了这个问题。保持当前视频时间最大持续时间,不要设置为0,它会无限重复条件。

if (videoRef.current) {
 videoRef.current.seek(0);
}