2013-06-18 3 views
1

я следовал, как много различных примеров, как я могу, большинство из них в документации компании Apple, но я не могу найти причину, почему kAudioSessionProperty_OtherAudioIsPlayingвсегда возвращает положительное на моих устройствах.kAudioSessionProperty_OtherAudioIsPlaying Всегда Возвращает True

Я инициализировал и активировал сеанс, но он все же возвращает положительные результаты, когда моя музыка приостановлена.

Вот мой код:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    AVAudioSession* session = [AVAudioSession sharedInstance]; 

    NSError *activationError = nil; 
    BOOL success = [session setActive: YES error: &activationError]; 
    if (!success) { NSLog(@"%@", activationError); } 

    UInt32 otherAudioIsPlaying; 
    UInt32 propertySize = sizeof (otherAudioIsPlaying); 

    AudioSessionGetProperty (
          kAudioSessionProperty_OtherAudioIsPlaying, 
          &propertySize, 
          &otherAudioIsPlaying 
          ); 

    if (otherAudioIsPlaying) { 
     [session setCategory: AVAudioSessionCategoryAmbient error: nil]; 
    } else { 
     [session setCategory: AVAudioSessionCategorySoloAmbient error: nil]; 
    } 
} 

Что я делаю неправильно?

ответ

1

У меня была та же проблема, удалось это исправить, обеспечив, что AVAudiosession был экземпляр ДО проверки свойства следующим образом:

AVAudioSession * сессия = [AVAudioSession sharedInstance];

Убедитесь, что это произошло до того, как вы попытаетесь проверить, прежде чем какой-либо другой звук будет воспроизводиться, и он должен работать нормально :)

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

  • Нет связанных вопросов^_^