diff --git a/packages/video_player/video_player_avfoundation/CHANGELOG.md b/packages/video_player/video_player_avfoundation/CHANGELOG.md index c4425521fa9..56fc0d644d6 100644 --- a/packages/video_player/video_player_avfoundation/CHANGELOG.md +++ b/packages/video_player/video_player_avfoundation/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.4.6 + +* Fixes playback speed doesn't get persisted after reinitializing with new VideoPlayerController. + ## 2.4.5 * Updates functions without a prototype to avoid deprecation warning. diff --git a/packages/video_player/video_player_avfoundation/ios/Classes/FLTVideoPlayerPlugin.m b/packages/video_player/video_player_avfoundation/ios/Classes/FLTVideoPlayerPlugin.m index 6c39cb9a4a7..df31c8dd82f 100644 --- a/packages/video_player/video_player_avfoundation/ios/Classes/FLTVideoPlayerPlugin.m +++ b/packages/video_player/video_player_avfoundation/ios/Classes/FLTVideoPlayerPlugin.m @@ -341,7 +341,7 @@ - (void)updatePlayingState { return; } if (_isPlaying) { - [_player play]; + [_player playImmediatelyAtRate:_player.rate]; } else { [_player pause]; } diff --git a/packages/video_player/video_player_avfoundation/test/avfoundation_video_player_test.dart b/packages/video_player/video_player_avfoundation/test/avfoundation_video_player_test.dart index 1b25da8bbaa..3e2274c2292 100644 --- a/packages/video_player/video_player_avfoundation/test/avfoundation_video_player_test.dart +++ b/packages/video_player/video_player_avfoundation/test/avfoundation_video_player_test.dart @@ -189,6 +189,12 @@ void main() { expect(log.textureMessage?.textureId, 1); }); + test('play with playback speed', () async { + await player.setPlaybackSpeed(1, 2.0); + await player.play(1); + expect(log.playbackSpeedMessage?.speed, 2.0); + }); + test('pause', () async { await player.pause(1); expect(log.log.last, 'pause');