diff --git a/packages/video_player/video_player/CHANGELOG.md b/packages/video_player/video_player/CHANGELOG.md index b87ac4bbeded..435484ba6e33 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 3924e59aa0f9..fe37427f8a74 100644 --- a/packages/video_player/video_player/example/ios/Podfile +++ b/packages/video_player/video_player/example/ios/Podfile @@ -31,6 +31,7 @@ target 'Runner' do 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 890866f34952..deea83350bce 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 + @interface VideoPlayerTests : XCTestCase @end @implementation VideoPlayerTests - (void)testPlugin { - FLTVideoPlayerPlugin* plugin = [[FLTVideoPlayerPlugin alloc] init]; + FLTVideoPlayerPlugin *plugin = [[FLTVideoPlayerPlugin alloc] init]; XCTAssertNotNil(plugin); } +- (void)testSeekToInvokesTextureFrameAvailableOnTextureRegistry { + NSObject *mockTextureRegistry = + OCMProtocolMock(@protocol(FlutterTextureRegistry)); + NSObject *registry = + (NSObject *)[[UIApplication sharedApplication] delegate]; + NSObject *registrar = + [registry registrarForPlugin:@"TEST_FLTVideoPlayerPlugin"]; + NSObject *partialRegistrar = OCMPartialMock(registrar); + OCMStub([partialRegistrar textures]).andReturn(mockTextureRegistry); + [FLTVideoPlayerPlugin registerWithRegistrar:partialRegistrar]; + FLTVideoPlayerPlugin *videoPlayerPlugin = + (FLTVideoPlayerPlugin *)[[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 6c9d91468d6b..2514aee71f10 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 @interface FLTVideoPlayerPlugin : NSObject +- (instancetype)initWithRegistrar:(NSObject*)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 78626eb4f3c1..b581cd8b7b5e 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 @@ - (FLTPositionMessage*)position:(FLTTextureMessage*)input error:(FlutterError**) - (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 3ae9c0dfd301..fcb6b844249a 100644 --- a/packages/video_player/video_player/pubspec.yaml +++ b/packages/video_player/video_player/pubspec.yaml @@ -3,7 +3,7 @@ description: Flutter plugin for displaying inline video with other Flutter 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"