2014-12-29 3 views
0

У меня есть проблема с этим кодом:Фоновая музыка проблемы прошивкой

-(void)playSong 
{ 
    // ... 
    NSLog(@"playing %i", currentSONG); 
    VKAudio* song = [audios objectAtIndex:currentSONG]; 
    if (player == nil) { // create player object when first called 
     player = [[AVPlayer alloc] initWithURL:[self urlForVKAudio:song]]; 
     [player play]; 
     [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; // turn on in background 
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleAVPlayerItemDidPlayToEndTimeNotification) name:AVPlayerItemDidPlayToEndTimeNotification object:nil]; 
    } 
    else { 
     [player replaceCurrentItemWithPlayerItem: 
     [[AVPlayerItem alloc] initWithURL:[self urlForVKAudio:song]]]; 
     [player play]; // <- this is not working when phone is blocked & screen is off 
    } 
} 

Проблема здесь состоит в том, что при переходе в режим Б.Г. во время воспроизведения музыки он играет до конца текущего пункта, но следующий пункт не работает, поэтому в фоновом режиме метод

[player play]; 

ничего не делает ... Что я делаю неправильно? (bg музыка включен)

ответ

1

Насколько я вижу, вы правильно настроили AudioSession, но не активируете его.

Это то, что я использую:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[[AVAudioSession sharedInstance] setActive:YES error:nil]; 
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
[self becomeFirstResponder]; 
+0

Большое спасибо! не успели проверить сейчас, но я сообщу результаты, когда это возможно! – maxpovver

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