Pārlūkot izejas kodu

Implement handling play/pause remote events

Gleb Pinigin 12 gadi atpakaļ
vecāks
revīzija
d0f9f0cd0c
1 mainītis faili ar 41 papildinājumiem un 0 dzēšanām
  1. 41 0
      AspenProject/VLCMovieViewController.m

+ 41 - 0
AspenProject/VLCMovieViewController.m

@@ -119,6 +119,47 @@
     return self;
 }
 
+#pragma mark - remote events
+
+- (void)viewDidAppear:(BOOL)animated
+{
+    [super viewDidAppear:animated];
+    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
+    [self becomeFirstResponder];
+}
+
+- (void)viewDidDisappear:(BOOL)animated
+{
+    [super viewDidDisappear:animated];
+    [[UIApplication sharedApplication] endReceivingRemoteControlEvents];
+    [self resignFirstResponder];
+}
+
+- (BOOL)canBecomeFirstResponder
+{
+    return YES;
+}
+
+- (void)remoteControlReceivedWithEvent:(UIEvent *)event
+{
+    switch (event.subtype) {
+        case UIEventSubtypeRemoteControlPlay:
+            [_mediaPlayer play];
+            break;
+            
+        case UIEventSubtypeRemoteControlPause:
+            [_mediaPlayer pause];
+            break;
+
+        case UIEventSubtypeRemoteControlTogglePlayPause:
+            [self play:nil];
+            break;
+
+        default:
+            break;
+    }
+}
+
 #pragma mark - controls visibility
 
 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch