You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调用react-player的stop方法停止并结束视频播放?

关于react-player停止播放的实现方案

react-player 没有内置公开的stop实例方法,你已经通过ref绑定了播放器实例到this.player上,直接基于该实例实现停止逻辑即可:

  • 基础停止效果(暂停播放+进度归零)
    你可以直接封装一个停止方法,在需要触发停止的逻辑里调用即可:
// 封装停止方法
stopVideo = () => {
  // 先判断播放器实例是否存在,避免报错
  if (!this.player) return
  this.player.pause()
  this.player.seekTo(0)
}
  • 完全结束播放(移除视频源)
    如果需要彻底结束播放、清除当前视频的加载状态,可以把视频地址存在state中,停止时直接置空地址:
// 初始化state存储视频地址
state = {
  videoUrl: VIMEO_URL
}

stopVideo = () => {
  if (!this.player) return
  this.player.pause()
  this.player.seekTo(0)
  // 置空视频地址,移除播放器加载的视频资源
  this.setState({ videoUrl: '' })
}

对应修改组件的url属性即可:

<ReactPlayer
  className="react-player mw-100 w-100 "
  id="myPlayer"
  ref={(player) => {
    this.player = player;
  }}
  url={this.state.videoUrl}
  // 其余属性保持不变
  onStart={() => {
    this.player.seekTo(this.getProgress());
  }}
  onPlay={() => this.play(this)}
  onPause={() => this.pause()}
  onDuration={this.handleDuration}
  onProgress={this._recordProgress}
  onReady={() => this.player.seekTo(this.getProgress())}
/>;

如果是函数式组件开发场景,替换class的ref为useRef即可,核心逻辑完全一致。

内容的提问来源于stack exchange,提问作者Chandra Prakash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:39:00