基於Flutter Video_Player實現倍速播放

淡白225發表於2020-07-11

為啥要在 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() 方法修改播放速度。

專案地址僅實現了安卓

受此啟發

相關文章