[video_player] Update texture on seekTo (#2758)
diff --git a/packages/video_player/video_player/CHANGELOG.md b/packages/video_player/video_player/CHANGELOG.md index b87ac4b..435484b 100644 --- a/packages/video_player/video_player/CHANGELOG.md +++ b/packages/video_player/video_player/CHANGELOG.md
@@ -1,3 +1,7 @@ +## 2.2.10 + +* iOS: Updates texture on `seekTo`. + ## 2.2.9 * Adds compatibility with `video_player_platform_interface` 5.0, which does not
diff --git a/packages/video_player/video_player/example/ios/Podfile b/packages/video_player/video_player/example/ios/Podfile index 3924e59..fe37427 100644 --- a/packages/video_player/video_player/example/ios/Podfile +++ b/packages/video_player/video_player/example/ios/Podfile
@@ -31,6 +31,7 @@ flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__)) target 'RunnerTests' do inherit! :search_paths + pod 'OCMock', '3.5' end end
diff --git a/packages/video_player/video_player/example/ios/RunnerTests/VideoPlayerTests.m b/packages/video_player/video_player/example/ios/RunnerTests/VideoPlayerTests.m index 890866f..deea833 100644 --- a/packages/video_player/video_player/example/ios/RunnerTests/VideoPlayerTests.m +++ b/packages/video_player/video_player/example/ios/RunnerTests/VideoPlayerTests.m
@@ -5,14 +5,37 @@ @import video_player; @import XCTest; +#import <OCMock/OCMock.h> + @interface VideoPlayerTests : XCTestCase @end @implementation VideoPlayerTests - (void)testPlugin { - FLTVideoPlayerPlugin* plugin = [[FLTVideoPlayerPlugin alloc] init]; + FLTVideoPlayerPlugin *plugin = [[FLTVideoPlayerPlugin alloc] init]; XCTAssertNotNil(plugin); } +- (void)testSeekToInvokesTextureFrameAvailableOnTextureRegistry { + NSObject<FlutterTextureRegistry> *mockTextureRegistry = + OCMProtocolMock(@protocol(FlutterTextureRegistry)); + NSObject<FlutterPluginRegistry> *registry = + (NSObject<FlutterPluginRegistry> *)[[UIApplication sharedApplication] delegate]; + NSObject<FlutterPluginRegistrar> *registrar = + [registry registrarForPlugin:@"TEST_FLTVideoPlayerPlugin"]; + NSObject<FlutterPluginRegistrar> *partialRegistrar = OCMPartialMock(registrar); + OCMStub([partialRegistrar textures]).andReturn(mockTextureRegistry); + [FLTVideoPlayerPlugin registerWithRegistrar:partialRegistrar]; + FLTVideoPlayerPlugin<FLTVideoPlayerApi> *videoPlayerPlugin = + (FLTVideoPlayerPlugin<FLTVideoPlayerApi> *)[[FLTVideoPlayerPlugin alloc] + initWithRegistrar:partialRegistrar]; + FLTPositionMessage *message = [[FLTPositionMessage alloc] init]; + message.textureId = @101; + message.position = @0; + FlutterError *error; + [videoPlayerPlugin seekTo:message error:&error]; + OCMVerify([mockTextureRegistry textureFrameAvailable:message.textureId.intValue]); +} + @end
diff --git a/packages/video_player/video_player/ios/Classes/FLTVideoPlayerPlugin.h b/packages/video_player/video_player/ios/Classes/FLTVideoPlayerPlugin.h index 6c9d914..2514aee 100644 --- a/packages/video_player/video_player/ios/Classes/FLTVideoPlayerPlugin.h +++ b/packages/video_player/video_player/ios/Classes/FLTVideoPlayerPlugin.h
@@ -5,4 +5,5 @@ #import <Flutter/Flutter.h> @interface FLTVideoPlayerPlugin : NSObject <FlutterPlugin> +- (instancetype)initWithRegistrar:(NSObject<FlutterPluginRegistrar>*)registrar; @end
diff --git a/packages/video_player/video_player/ios/Classes/FLTVideoPlayerPlugin.m b/packages/video_player/video_player/ios/Classes/FLTVideoPlayerPlugin.m index 78626eb..b581cd8 100644 --- a/packages/video_player/video_player/ios/Classes/FLTVideoPlayerPlugin.m +++ b/packages/video_player/video_player/ios/Classes/FLTVideoPlayerPlugin.m
@@ -616,6 +616,7 @@ - (void)seekTo:(FLTPositionMessage*)input error:(FlutterError**)error { FLTVideoPlayer* player = _players[input.textureId]; [player seekTo:[input.position intValue]]; + [_registry textureFrameAvailable:input.textureId.intValue]; } - (void)pause:(FLTTextureMessage*)input error:(FlutterError**)error {
diff --git a/packages/video_player/video_player/pubspec.yaml b/packages/video_player/video_player/pubspec.yaml index 3ae9c0d..fcb6b84 100644 --- a/packages/video_player/video_player/pubspec.yaml +++ b/packages/video_player/video_player/pubspec.yaml
@@ -3,7 +3,7 @@ widgets on Android, iOS, and web. repository: https://github.com/flutter/plugins/tree/master/packages/video_player/video_player issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22 -version: 2.2.9 +version: 2.2.10 environment: sdk: ">=2.14.0 <3.0.0"