2012-05-07 3 views
2

Я использую AVPlayer для воспроизведения видео в своем приложении, теперь я хочу, чтобы видео воспроизводилось в фоновом режиме.AVPlayer воспроизводит видео в фоновом режиме

это то, что я положил в - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions:

[[AVAudioSession sharedInstance] setDelegate: self];  
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 

и я также добавить к PLIST: Требуемые режимы фона -> App воспроизводит звук

добавить это тоже:

-(void)viewDidAppear:(BOOL)animated{ 
    [super viewDidAppear:animated]; 
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
    [self becomeFirstResponder]; 
} 

- (BOOL)canBecomeFirstResponder { 
    return YES; 
} 

- (void)remoteControlReceivedWithEvent:(UIEvent *)event { 
    switch (event.subtype) { 
     case UIEventSubtypeRemoteControlTogglePlayPause: 
      NSLog(@"4"); 
      break; 
     case UIEventSubtypeRemoteControlPlay: 
      break; 
     case UIEventSubtypeRemoteControlPause: 
      NSLog(@"3"); 
      break; 
     case UIEventSubtypeRemoteControlNextTrack: 
      NSLog(@"2"); 
      break; 
     case UIEventSubtypeRemoteControlPreviousTrack: 
      NSLog(@"1"); 
      break; 
     default: 
      break; 
    } 
} 

И когда я перемещаю приложение на задний план и нажимаю кнопки, печать nslog на консоль

Мне нужно было добавить что-то еще?

+0

Следуйте по этой ссылке: http://stackoverflow.com/questions/4771105/how-do-i-get-my-avplayer-to-play-while-app-is-in-background – iMash

ответ

1

Просто добавьте [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; и некоторые другие ухищрения. Это все here.

+0

Я редактирую свой пост после того, что вы написали – MTA

+1

Подождите. Это сработало? Видео работает в фоновом режиме? Из всего шума в Интернете я думал, что фоновое видео невозможно на iOS! @MTA, пожалуйста, подтвердите, если это возможно. –

+0

@dev Я могу подтвердить, что он работает. Вам нужно заблокировать устройство и не нажимать кнопку «домой». Вы также можете поддерживать регистрацию домашней кнопки для 'UIApplicationDidEnterBackgroundNotification' и с таймером перезапускать видео, вы получаете небольшую задержку (выцветаете), но это лучше, чем ничего. – MacTeo

Смежные вопросы