[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"