diff --git a/packages/video_player/video_player/CHANGELOG.md b/packages/video_player/video_player/CHANGELOG.md index 4e2df4ebaef3..de249eec427a 100644 --- a/packages/video_player/video_player/CHANGELOG.md +++ b/packages/video_player/video_player/CHANGELOG.md @@ -1,3 +1,8 @@ +## 0.10.12+5 + +* Added isDurationIndefinite to support indefinite streams +* Raised video_player_platform_interface in video_player to 2.1.1. + ## 0.10.12+4 * Keep handling deprecated Android v1 classes for backward compatibility. diff --git a/packages/video_player/video_player/ios/Classes/FLTVideoPlayerPlugin.m b/packages/video_player/video_player/ios/Classes/FLTVideoPlayerPlugin.m index a834fe32b87b..be0c7d3d84f6 100644 --- a/packages/video_player/video_player/ios/Classes/FLTVideoPlayerPlugin.m +++ b/packages/video_player/video_player/ios/Classes/FLTVideoPlayerPlugin.m @@ -302,6 +302,10 @@ - (void)updatePlayingState { _displayLink.paused = !_isPlaying; } +- (bool)isDurationIndefinite { + return CMTIME_IS_INDEFINITE([[_player currentItem] duration]); +} + - (void)sendInitialized { if (_eventSink && !_isInitialized) { CGSize size = [self.player currentItem].presentationSize; @@ -312,8 +316,9 @@ - (void)sendInitialized { if (height == CGSizeZero.height && width == CGSizeZero.width) { return; } + // The player may be initialized but still needs to determine the duration. - if ([self duration] == 0) { + if ([self duration] == 0 && ![self isDurationIndefinite]) { return; } diff --git a/packages/video_player/video_player/lib/video_player.dart b/packages/video_player/video_player/lib/video_player.dart index 8cd05615cc43..16dc1fcb7bc8 100644 --- a/packages/video_player/video_player/lib/video_player.dart +++ b/packages/video_player/video_player/lib/video_player.dart @@ -757,12 +757,12 @@ class _VideoProgressIndicatorState extends State { fit: StackFit.passthrough, children: [ LinearProgressIndicator( - value: maxBuffering / duration, + value: duration > 0 ? maxBuffering / duration : 0, valueColor: AlwaysStoppedAnimation(colors.bufferedColor), backgroundColor: colors.backgroundColor, ), LinearProgressIndicator( - value: position / duration, + value: duration > 0 ? position / duration : 0, valueColor: AlwaysStoppedAnimation(colors.playedColor), backgroundColor: Colors.transparent, ), diff --git a/packages/video_player/video_player/pubspec.yaml b/packages/video_player/video_player/pubspec.yaml index 6eac285006a9..1e9c1dfac281 100644 --- a/packages/video_player/video_player/pubspec.yaml +++ b/packages/video_player/video_player/pubspec.yaml @@ -4,7 +4,7 @@ description: Flutter plugin for displaying inline video with other Flutter # 0.10.y+z is compatible with 1.0.0, if you land a breaking change bump # the version to 2.0.0. # See more details: https://github.com/flutter/flutter/wiki/Package-migration-to-1.0.0 -version: 0.10.12+4 +version: 0.10.12+5 homepage: https://github.com/flutter/plugins/tree/master/packages/video_player/video_player flutter: