1616#import < video_player_avfoundation/FVPNativeVideoViewFactory.h>
1717#endif
1818
19- // TODO(stuartmorgan): Convert to using mock registrars instead.
20- NSObject <FlutterPluginRegistry> *GetPluginRegistry (void ) {
21- #if TARGET_OS_IOS
22- return (NSObject <FlutterPluginRegistry> *)[[UIApplication sharedApplication ] delegate ];
23- #else
24- return (FlutterViewController *)NSApplication .sharedApplication .windows [0 ].contentViewController ;
25- #endif
26- }
27-
2819#if TARGET_OS_IOS
2920@interface FakeAVAssetTrack : AVAssetTrack
3021@property (readonly , nonatomic ) CGAffineTransform preferredTransform;
@@ -168,18 +159,15 @@ - (FVPDisplayLink *)displayLinkWithRegistrar:(id<FlutterPluginRegistrar>)registr
168159@implementation VideoPlayerTests
169160
170161- (void )testCreateWithOptionsReturnsErrorForInvalidAssetPath {
171- NSObject <FlutterPluginRegistrar> *registrar = [ GetPluginRegistry ()
172- registrarForPlugin: @" testCreateWithOptionsReturnsErrorForInvalidAssetPath " ] ;
162+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock ( @protocol (FlutterPluginRegistrar));
163+ OCMStub ([registrar lookupKeyForAsset: [OCMArg any ]]). andReturn ( nil ) ;
173164 FVPVideoPlayerPlugin *videoPlayerPlugin =
174165 [[FVPVideoPlayerPlugin alloc ] initWithRegistrar: registrar];
175166
176167 FlutterError *initializationError;
177168 [videoPlayerPlugin initialize: &initializationError];
178169 XCTAssertNil (initializationError);
179170
180- id mockRegistrar = OCMPartialMock (registrar);
181- OCMStub ([mockRegistrar lookupKeyForAsset: [OCMArg any ]]).andReturn (nil );
182-
183171 FVPCreationOptions *create =
184172 [FVPCreationOptions makeWithAsset: @" invalid/path/to/asset"
185173 uri: nil
@@ -202,8 +190,7 @@ - (void)testBlankVideoBugWithEncryptedVideoStreamAndInvertedAspectRatioBugForSom
202190 // video streams (not just iOS 16). (https://github.com/flutter/flutter/issues/109116). An
203191 // invisible AVPlayerLayer is used to overwrite the protection of pixel buffers in those streams
204192 // for issue #1, and restore the correct width and height for issue #2.
205- NSObject <FlutterPluginRegistrar> *registrar =
206- [GetPluginRegistry () registrarForPlugin: @" testPlayerLayerWorkaround" ];
193+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
207194 FVPVideoPlayerPlugin *videoPlayerPlugin =
208195 [[FVPVideoPlayerPlugin alloc ] initWithRegistrar: registrar];
209196
@@ -232,10 +219,8 @@ - (void)testBlankVideoBugWithEncryptedVideoStreamAndInvertedAspectRatioBugForSom
232219- (void )testPlayerForPlatformViewDoesNotRegisterTexture {
233220 NSObject <FlutterTextureRegistry> *mockTextureRegistry =
234221 OCMProtocolMock (@protocol (FlutterTextureRegistry));
235- NSObject <FlutterPluginRegistrar> *registrar =
236- [GetPluginRegistry () registrarForPlugin: @" testPlayerForPlatformViewDoesNotRegisterTexture" ];
237- NSObject <FlutterPluginRegistrar> *partialRegistrar = OCMPartialMock (registrar);
238- OCMStub ([partialRegistrar textures ]).andReturn (mockTextureRegistry);
222+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
223+ OCMStub ([registrar textures ]).andReturn (mockTextureRegistry);
239224 FVPDisplayLink *mockDisplayLink =
240225 OCMPartialMock ([[FVPDisplayLink alloc ] initWithRegistrar: registrar
241226 callback: ^(){
@@ -246,7 +231,7 @@ - (void)testPlayerForPlatformViewDoesNotRegisterTexture {
246231 FVPVideoPlayerPlugin *videoPlayerPlugin = [[FVPVideoPlayerPlugin alloc ]
247232 initWithAVFactory: [[StubFVPAVFactory alloc ] initWithPlayer: nil output: mockVideoOutput]
248233 displayLinkFactory: stubDisplayLinkFactory
249- registrar: partialRegistrar ];
234+ registrar: registrar ];
250235
251236 FlutterError *initalizationError;
252237 [videoPlayerPlugin initialize: &initalizationError];
@@ -267,10 +252,8 @@ - (void)testPlayerForPlatformViewDoesNotRegisterTexture {
267252- (void )testSeekToWhilePausedStartsDisplayLinkTemporarily {
268253 NSObject <FlutterTextureRegistry> *mockTextureRegistry =
269254 OCMProtocolMock (@protocol (FlutterTextureRegistry));
270- NSObject <FlutterPluginRegistrar> *registrar =
271- [GetPluginRegistry () registrarForPlugin: @" SeekToWhilePausedStartsDisplayLinkTemporarily" ];
272- NSObject <FlutterPluginRegistrar> *partialRegistrar = OCMPartialMock (registrar);
273- OCMStub ([partialRegistrar textures ]).andReturn (mockTextureRegistry);
255+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
256+ OCMStub ([registrar textures ]).andReturn (mockTextureRegistry);
274257 FVPDisplayLink *mockDisplayLink =
275258 OCMPartialMock ([[FVPDisplayLink alloc ] initWithRegistrar: registrar
276259 callback: ^(){
@@ -281,7 +264,7 @@ - (void)testSeekToWhilePausedStartsDisplayLinkTemporarily {
281264 FVPVideoPlayerPlugin *videoPlayerPlugin = [[FVPVideoPlayerPlugin alloc ]
282265 initWithAVFactory: [[StubFVPAVFactory alloc ] initWithPlayer: nil output: mockVideoOutput]
283266 displayLinkFactory: stubDisplayLinkFactory
284- registrar: partialRegistrar ];
267+ registrar: registrar ];
285268
286269 FlutterError *initalizationError;
287270 [videoPlayerPlugin initialize: &initalizationError];
@@ -338,10 +321,8 @@ - (void)testSeekToWhilePausedStartsDisplayLinkTemporarily {
338321- (void )testInitStartsDisplayLinkTemporarily {
339322 NSObject <FlutterTextureRegistry> *mockTextureRegistry =
340323 OCMProtocolMock (@protocol (FlutterTextureRegistry));
341- NSObject <FlutterPluginRegistrar> *registrar =
342- [GetPluginRegistry () registrarForPlugin: @" InitStartsDisplayLinkTemporarily" ];
343- NSObject <FlutterPluginRegistrar> *partialRegistrar = OCMPartialMock (registrar);
344- OCMStub ([partialRegistrar textures ]).andReturn (mockTextureRegistry);
324+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
325+ OCMStub ([registrar textures ]).andReturn (mockTextureRegistry);
345326 FVPDisplayLink *mockDisplayLink =
346327 OCMPartialMock ([[FVPDisplayLink alloc ] initWithRegistrar: registrar
347328 callback: ^(){
@@ -354,7 +335,7 @@ - (void)testInitStartsDisplayLinkTemporarily {
354335 initWithAVFactory: [[StubFVPAVFactory alloc ] initWithPlayer: stubAVPlayer
355336 output: mockVideoOutput]
356337 displayLinkFactory: stubDisplayLinkFactory
357- registrar: partialRegistrar ];
338+ registrar: registrar ];
358339
359340 FlutterError *initalizationError;
360341 [videoPlayerPlugin initialize: &initalizationError];
@@ -393,10 +374,8 @@ - (void)testInitStartsDisplayLinkTemporarily {
393374- (void )testSeekToWhilePlayingDoesNotStopDisplayLink {
394375 NSObject <FlutterTextureRegistry> *mockTextureRegistry =
395376 OCMProtocolMock (@protocol (FlutterTextureRegistry));
396- NSObject <FlutterPluginRegistrar> *registrar =
397- [GetPluginRegistry () registrarForPlugin: @" SeekToWhilePlayingDoesNotStopDisplayLink" ];
398- NSObject <FlutterPluginRegistrar> *partialRegistrar = OCMPartialMock (registrar);
399- OCMStub ([partialRegistrar textures ]).andReturn (mockTextureRegistry);
377+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
378+ OCMStub ([registrar textures ]).andReturn (mockTextureRegistry);
400379 FVPDisplayLink *mockDisplayLink =
401380 OCMPartialMock ([[FVPDisplayLink alloc ] initWithRegistrar: registrar
402381 callback: ^(){
@@ -407,7 +386,7 @@ - (void)testSeekToWhilePlayingDoesNotStopDisplayLink {
407386 FVPVideoPlayerPlugin *videoPlayerPlugin = [[FVPVideoPlayerPlugin alloc ]
408387 initWithAVFactory: [[StubFVPAVFactory alloc ] initWithPlayer: nil output: mockVideoOutput]
409388 displayLinkFactory: stubDisplayLinkFactory
410- registrar: partialRegistrar ];
389+ registrar: registrar ];
411390
412391 FlutterError *initalizationError;
413392 [videoPlayerPlugin initialize: &initalizationError];
@@ -463,10 +442,8 @@ - (void)testSeekToWhilePlayingDoesNotStopDisplayLink {
463442- (void )testPauseWhileWaitingForFrameDoesNotStopDisplayLink {
464443 NSObject <FlutterTextureRegistry> *mockTextureRegistry =
465444 OCMProtocolMock (@protocol (FlutterTextureRegistry));
466- NSObject <FlutterPluginRegistrar> *registrar =
467- [GetPluginRegistry () registrarForPlugin: @" PauseWhileWaitingForFrameDoesNotStopDisplayLink" ];
468- NSObject <FlutterPluginRegistrar> *partialRegistrar = OCMPartialMock (registrar);
469- OCMStub ([partialRegistrar textures ]).andReturn (mockTextureRegistry);
445+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
446+ OCMStub ([registrar textures ]).andReturn (mockTextureRegistry);
470447 FVPDisplayLink *mockDisplayLink =
471448 OCMPartialMock ([[FVPDisplayLink alloc ] initWithRegistrar: registrar
472449 callback: ^(){
@@ -477,7 +454,7 @@ - (void)testPauseWhileWaitingForFrameDoesNotStopDisplayLink {
477454 FVPVideoPlayerPlugin *videoPlayerPlugin = [[FVPVideoPlayerPlugin alloc ]
478455 initWithAVFactory: [[StubFVPAVFactory alloc ] initWithPlayer: nil output: mockVideoOutput]
479456 displayLinkFactory: stubDisplayLinkFactory
480- registrar: partialRegistrar ];
457+ registrar: registrar ];
481458
482459 FlutterError *initalizationError;
483460 [videoPlayerPlugin initialize: &initalizationError];
@@ -502,8 +479,7 @@ - (void)testPauseWhileWaitingForFrameDoesNotStopDisplayLink {
502479}
503480
504481- (void )testDeregistersFromPlayer {
505- NSObject <FlutterPluginRegistrar> *registrar =
506- [GetPluginRegistry () registrarForPlugin: @" testDeregistersFromPlayer" ];
482+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
507483 FVPVideoPlayerPlugin *videoPlayerPlugin =
508484 (FVPVideoPlayerPlugin *)[[FVPVideoPlayerPlugin alloc ] initWithRegistrar: registrar];
509485
@@ -535,8 +511,7 @@ - (void)testDeregistersFromPlayer {
535511}
536512
537513- (void )testBufferingStateFromPlayer {
538- NSObject <FlutterPluginRegistrar> *registrar =
539- [GetPluginRegistry () registrarForPlugin: @" testLiveStreamBufferEndFromPlayer" ];
514+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
540515 FVPVideoPlayerPlugin *videoPlayerPlugin =
541516 (FVPVideoPlayerPlugin *)[[FVPVideoPlayerPlugin alloc ] initWithRegistrar: registrar];
542517
@@ -580,8 +555,7 @@ - (void)testBufferingStateFromPlayer {
580555}
581556
582557- (void )testVideoControls {
583- NSObject <FlutterPluginRegistrar> *registrar =
584- [GetPluginRegistry () registrarForPlugin: @" TestVideoControls" ];
558+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
585559
586560 FVPVideoPlayerPlugin *videoPlayerPlugin =
587561 (FVPVideoPlayerPlugin *)[[FVPVideoPlayerPlugin alloc ] initWithRegistrar: registrar];
@@ -595,8 +569,7 @@ - (void)testVideoControls {
595569}
596570
597571- (void )testAudioControls {
598- NSObject <FlutterPluginRegistrar> *registrar =
599- [GetPluginRegistry () registrarForPlugin: @" TestAudioControls" ];
572+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
600573
601574 FVPVideoPlayerPlugin *videoPlayerPlugin =
602575 (FVPVideoPlayerPlugin *)[[FVPVideoPlayerPlugin alloc ] initWithRegistrar: registrar];
@@ -611,8 +584,7 @@ - (void)testAudioControls {
611584}
612585
613586- (void )testHLSControls {
614- NSObject <FlutterPluginRegistrar> *registrar =
615- [GetPluginRegistry () registrarForPlugin: @" TestHLSControls" ];
587+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
616588
617589 FVPVideoPlayerPlugin *videoPlayerPlugin =
618590 (FVPVideoPlayerPlugin *)[[FVPVideoPlayerPlugin alloc ] initWithRegistrar: registrar];
@@ -627,8 +599,7 @@ - (void)testHLSControls {
627599
628600- (void )testAudioOnlyHLSControls {
629601 XCTSkip (@" Flaky; see https://github.com/flutter/flutter/issues/164381" );
630- NSObject <FlutterPluginRegistrar> *registrar =
631- [GetPluginRegistry () registrarForPlugin: @" TestAudioOnlyHLSControls" ];
602+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
632603
633604 FVPVideoPlayerPlugin *videoPlayerPlugin =
634605 (FVPVideoPlayerPlugin *)[[FVPVideoPlayerPlugin alloc ] initWithRegistrar: registrar];
@@ -656,8 +627,7 @@ - (void)testTransformFix {
656627#endif
657628
658629- (void )testSeekToleranceWhenNotSeekingToEnd {
659- NSObject <FlutterPluginRegistrar> *registrar =
660- [GetPluginRegistry () registrarForPlugin: @" TestSeekTolerance" ];
630+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
661631
662632 StubAVPlayer *stubAVPlayer = [[StubAVPlayer alloc ] init ];
663633 StubFVPAVFactory *stubAVFactory = [[StubFVPAVFactory alloc ] initWithPlayer: stubAVPlayer
@@ -695,8 +665,7 @@ - (void)testSeekToleranceWhenNotSeekingToEnd {
695665}
696666
697667- (void )testSeekToleranceWhenSeekingToEnd {
698- NSObject <FlutterPluginRegistrar> *registrar =
699- [GetPluginRegistry () registrarForPlugin: @" TestSeekToEndTolerance" ];
668+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
700669
701670 StubAVPlayer *stubAVPlayer = [[StubAVPlayer alloc ] init ];
702671 StubFVPAVFactory *stubAVFactory = [[StubFVPAVFactory alloc ] initWithPlayer: stubAVPlayer
@@ -792,8 +761,7 @@ - (void)testSeekToleranceWhenSeekingToEnd {
792761//
793762// Failing to de-register results in a crash in [AVPlayer willChangeValueForKey:].
794763- (void )testDoesNotCrashOnRateObservationAfterDisposal {
795- NSObject <FlutterPluginRegistrar> *registrar =
796- [GetPluginRegistry () registrarForPlugin: @" testDoesNotCrashOnRateObservationAfterDisposal" ];
764+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
797765
798766 AVPlayer *avPlayer = nil ;
799767 __weak FVPVideoPlayer *weakPlayer = nil ;
@@ -848,8 +816,7 @@ - (void)testDoesNotCrashOnRateObservationAfterDisposal {
848816// Both of these methods dispatch [FVPVideoPlayer dispose] on the main thread
849817// leading to a possible crash when de-registering observers twice.
850818- (void )testHotReloadDoesNotCrash {
851- NSObject <FlutterPluginRegistrar> *registrar =
852- [GetPluginRegistry () registrarForPlugin: @" testHotReloadDoesNotCrash" ];
819+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
853820
854821 __weak FVPVideoPlayer *weakPlayer = nil ;
855822
@@ -900,42 +867,32 @@ - (void)testHotReloadDoesNotCrash {
900867
901868#if TARGET_OS_IOS
902869- (void )testNativeVideoViewFactoryRegistration {
903- NSObject <FlutterPluginRegistry> *registry = GetPluginRegistry ();
904- NSObject <FlutterPluginRegistrar> *registrar =
905- [registry registrarForPlugin: @" testNativeVideoViewFactoryRegistration" ];
906- id mockRegistrar = OCMPartialMock (registrar);
870+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
907871
908- OCMExpect ([mockRegistrar
909- registerViewFactory: [OCMArg isKindOfClass: [FVPNativeVideoViewFactory class ]]
910- withId: @" plugins.flutter.dev/video_player_ios" ]);
911- [FVPVideoPlayerPlugin registerWithRegistrar: mockRegistrar];
872+ OCMExpect ([registrar registerViewFactory: [OCMArg isKindOfClass: [FVPNativeVideoViewFactory class ]]
873+ withId: @" plugins.flutter.dev/video_player_ios" ]);
874+ [FVPVideoPlayerPlugin registerWithRegistrar: registrar];
912875
913- OCMVerifyAll (mockRegistrar );
876+ OCMVerifyAll (registrar );
914877}
915878#endif
916879
917880- (void )testPublishesInRegistration {
918- NSString *pluginKey = @" TestRegistration" ;
919- NSObject <FlutterPluginRegistry> *registry = GetPluginRegistry ();
920- NSObject <FlutterPluginRegistrar> *registrar = [registry registrarForPlugin: pluginKey];
921- id mockRegistrar = OCMPartialMock (registrar);
922- // Empty stub to pass a check in Flutter's engine (double factory registration).
923- // registerWithRegistrar gets called at the beginning of the test, and factory is registered
924- // there. Additional call would try to register the same factory another time, which would fail a
925- // check in the engine.
926- OCMStub ([mockRegistrar registerViewFactory: [OCMArg any ] withId: [OCMArg any ]]);
927-
928- [FVPVideoPlayerPlugin registerWithRegistrar: mockRegistrar];
881+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
882+ __block NSObject *publishedValue;
883+ OCMStub ([registrar publish: [OCMArg checkWithBlock: ^BOOL (id value) {
884+ publishedValue = value;
885+ return YES ;
886+ }]]);
929887
930- id publishedValue = [registry valuePublishedByPlugin: pluginKey ];
888+ [FVPVideoPlayerPlugin registerWithRegistrar: registrar ];
931889
932890 XCTAssertNotNil (publishedValue);
933891 XCTAssertTrue ([publishedValue isKindOfClass: [FVPVideoPlayerPlugin class ]]);
934892}
935893
936894- (void )testFailedToLoadVideoEventShouldBeAlwaysSent {
937- NSObject <FlutterPluginRegistrar> *registrar =
938- [GetPluginRegistry () registrarForPlugin: @" testFailedToLoadVideoEventShouldBeAlwaysSent" ];
895+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
939896 FVPVideoPlayerPlugin *videoPlayerPlugin =
940897 [[FVPVideoPlayerPlugin alloc ] initWithRegistrar: registrar];
941898 FlutterError *error;
@@ -969,8 +926,7 @@ - (void)testFailedToLoadVideoEventShouldBeAlwaysSent {
969926}
970927
971928- (void )testUpdatePlayingStateShouldNotResetRate {
972- NSObject <FlutterPluginRegistrar> *registrar =
973- [GetPluginRegistry () registrarForPlugin: @" testUpdatePlayingStateShouldNotResetRate" ];
929+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
974930
975931 FVPVideoPlayerPlugin *videoPlayerPlugin = [[FVPVideoPlayerPlugin alloc ]
976932 initWithAVFactory: [[StubFVPAVFactory alloc ] initWithPlayer: nil output: nil ]
@@ -1005,12 +961,10 @@ - (void)testUpdatePlayingStateShouldNotResetRate {
1005961}
1006962
1007963- (void )testPlayerShouldNotDropEverySecondFrame {
1008- NSObject <FlutterPluginRegistrar> *registrar =
1009- [GetPluginRegistry () registrarForPlugin: @" testPlayerShouldNotDropEverySecondFrame" ];
1010- NSObject <FlutterPluginRegistrar> *partialRegistrar = OCMPartialMock (registrar);
964+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
1011965 NSObject <FlutterTextureRegistry> *mockTextureRegistry =
1012966 OCMProtocolMock (@protocol (FlutterTextureRegistry));
1013- OCMStub ([partialRegistrar textures ]).andReturn (mockTextureRegistry);
967+ OCMStub ([registrar textures ]).andReturn (mockTextureRegistry);
1014968
1015969 FVPDisplayLink *displayLink = [[FVPDisplayLink alloc ] initWithRegistrar: registrar
1016970 callback: ^(){
@@ -1021,7 +975,7 @@ - (void)testPlayerShouldNotDropEverySecondFrame {
1021975 FVPVideoPlayerPlugin *videoPlayerPlugin = [[FVPVideoPlayerPlugin alloc ]
1022976 initWithAVFactory: [[StubFVPAVFactory alloc ] initWithPlayer: nil output: mockVideoOutput]
1023977 displayLinkFactory: stubDisplayLinkFactory
1024- registrar: partialRegistrar ];
978+ registrar: registrar ];
1025979
1026980 FlutterError *error;
1027981 [videoPlayerPlugin initialize: &error];
@@ -1084,8 +1038,7 @@ - (void)testPlayerShouldNotDropEverySecondFrame {
10841038
10851039#if TARGET_OS_IOS
10861040- (void )testVideoPlayerShouldNotOverwritePlayAndRecordNorDefaultToSpeaker {
1087- NSObject <FlutterPluginRegistrar> *registrar = [GetPluginRegistry ()
1088- registrarForPlugin: @" testVideoPlayerShouldNotOverwritePlayAndRecordNorDefaultToSpeaker" ];
1041+ NSObject <FlutterPluginRegistrar> *registrar = OCMProtocolMock (@protocol (FlutterPluginRegistrar));
10891042 FVPVideoPlayerPlugin *videoPlayerPlugin =
10901043 [[FVPVideoPlayerPlugin alloc ] initWithRegistrar: registrar];
10911044 FlutterError *error;
0 commit comments