diff --git a/AVPlayerOverlay/AVPlayer/AVPlayerOverlayViewController.m b/AVPlayerOverlay/AVPlayer/AVPlayerOverlayViewController.m index f1c2ddc..491650f 100644 --- a/AVPlayerOverlay/AVPlayer/AVPlayerOverlayViewController.m +++ b/AVPlayerOverlay/AVPlayer/AVPlayerOverlayViewController.m @@ -10,7 +10,7 @@ @interface AVPlayerOverlayViewController() -@property (nonatomic, strong) NSMutableArray *registeredActions; +@property (nonatomic, strong) NSMutableArray *registeredActions; @end @@ -36,12 +36,23 @@ - (void)addTarget:(id)target action:(SEL)action forEvents:(AVPlayerOverlayEvents { if (target && action) { - AVPlayerOverlayAction *act = [[AVPlayerOverlayAction alloc] init]; - act.target = target; - act.action = action; - act.event = event; + __block BOOL exist = NO; + [_registeredActions enumerateObjectsUsingBlock:^(AVPlayerOverlayAction * _Nonnull act, NSUInteger idx, BOOL * _Nonnull stop) { + if (act.target == target && act.action == action && act.event == event) { + exist = YES; + *stop = YES; + } + }]; - [_registeredActions addObject:act]; + if (!exist) { + + AVPlayerOverlayAction *act = [[AVPlayerOverlayAction alloc] init]; + act.target = target; + act.action = action; + act.event = event; + + [_registeredActions addObject:act]; + } } }