基于Flutter Video_Player实现倍速播放

作者:
淡白
创建时间:
2020-07-11 00:12:17
video_player

摘要:文章讲述了作者在使用Flutter开发应用过程中的一个问题,即如何实现倍速播放。作者首先介绍了Flutter支持倍速播放的两种播放器,并选择了官方的Video_Player进行开发。接着,作者通过查看Video_Player的源码发现其封装了Exoplayer播放器,并且Exoplayer支持倍速播放。因此,作者通过Flutter与原生的通信,调用Exoplayer的方法来实现倍速播放。最后,作者展示了实现效果,并给出了相关项目的地址。

为啥要在 Flutter 实现

  在前面我用 Flutter 完成了影视 APP 的开发。在各电视剧拖拖拉拉的剧情节奏有时就需要快进,但怕错过一些重要剧情内容。所以倍速播放一直让我头疼。在安卓那边有许多播放器直接就支持倍速播放。但我在前期开发 Flutter的应用的时候并没有去仔细寻找支持倍速播放的播放器就选择了官方的 Video_Player 进行开发。

flutter支持倍速播放的播放器:

实现倍速

  在看了Video_Player的源码后知道Video_Player在安卓这边是封装的 Exoplayer 播放器 查看官方文档发现Exoplayer是支持倍速播放的。现在我只需要实现 Flutter 与原生的通信就行了。 这个类的 Speed 参数控制的就是播放倍速 image.png 通过 SimpleExoPlayer.SetPlaybackParameters 方法来修改

void setSpeed(double value) {
      float bracketedValue = (float) value;
      PlaybackParameters existingParam = exoPlayer.getPlaybackParameters();
      PlaybackParameters newParameter =
          new PlaybackParameters(bracketedValue, existingParam.pitch, existingParam.skipSilence);
      exoPlayer.setPlaybackParameters(newParameter);
    }

效果展示

通过 VideoPlayerControllersetSpeed() 方法修改播放速度。

项目地址仅实现了安卓

受此启发