فهرست منبع

mini player: fix black vout when app becomes active again (close #14795)

(cherry picked from commit b2e32188380f57239ec6857919e17d44542f3d84)
Felix Paul Kühne 10 سال پیش
والد
کامیت
7140fb755e
1فایلهای تغییر یافته به همراه20 افزوده شده و 0 حذف شده
  1. 20 0
      Sources/VLCMiniPlaybackView.m

+ 20 - 0
Sources/VLCMiniPlaybackView.m

@@ -14,6 +14,7 @@
 #import "VLCPlaybackController.h"
 #import "VLCAppDelegate.h"
 #import "VLCPlaylistViewController.h"
+#import "VLCPlayerDisplayController.h"
 
 @interface VLCMiniPlaybackView () <VLCPlaybackControllerDelegate, UIGestureRecognizerDelegate>
 {
@@ -33,6 +34,11 @@
 
 @implementation VLCMiniPlaybackView
 
+- (void)dealloc
+{
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+}
+
 - (instancetype)initWithFrame:(CGRect)viewFrame
 {
     self = [super initWithFrame:viewFrame];
@@ -105,9 +111,23 @@
     [_artworkView addGestureRecognizer:_artworkTapRecognizer];
     _artworkView.userInteractionEnabled = YES;
 
+    [[NSNotificationCenter defaultCenter] addObserver:self
+                                             selector:@selector(appBecameActive:)
+                                                 name:UIApplicationDidBecomeActiveNotification
+                                               object:nil];
+
     return self;
 }
 
+- (void)appBecameActive:(NSNotification *)aNotification
+{
+    VLCPlayerDisplayController *pdc = [(VLCAppDelegate *)[UIApplication sharedApplication].delegate playerDisplayController];
+    if (pdc.displayMode == VLCPlayerDisplayControllerDisplayModeMiniplayer) {
+        VLCPlaybackController *vpc = self.playbackController;
+        [vpc recoverDisplayedMetadata];
+    }
+}
+
 - (void)tapRecognized
 {
     [self pushFullPlaybackView:nil];