2011-12-19 8 views
2

Я делаю пример приложения, которое воспроизводит песню, и эта песня будет по-прежнему воспроизводиться, даже если приложение переходит в фоновый режим.Фоновая задача AVAudioPlayer не работает на устройстве iOS 5.0.1, но работает над iOS 5 Simulator

В iOS 5 симулятор xcode, он по-прежнему воспроизводит песню, когда приложение переходит в фоновый режим, но когда я запускаю устройство iOS 5.0.1 iPad2, приложение перестает воспроизводить звук, когда идет на задний план. Ниже приведен код для воспроизведения песни и выполнения фоновой задачи. Вы сталкиваетесь с такой проблемой в iOS 5.0.1? или я что-то пропущу в коде? Но мне интересно, как он работает в симуляторе?

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    NSURL *url=[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"01-Track" ofType:@"mp3"]]; 
    NSError *error; 
    audioPlayer=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error]; 
    if(error) 
    { 
     NSLog(@"Error in audio palyer: %@", [error localizedDescription]); 
    } 
    else 
    { 
     audioPlayer.delegate =self; 
     [audioPlayer prepareToPlay]; 
     trackControl.maximumValue=[audioPlayer duration]; 
     trackControl.value=0.0; 

     [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
     [[AVAudioSession sharedInstance] setActive: YES error: nil]; 
    } 
} 
-(IBAction)playAudio:(id)sender 
{ 
    UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid; 
    if([audioPlayer play]){ 
     newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; 
} 

Спасибо!

+1

Вы добавили 'audio' в качестве фонового режима в свой файл info.plist? – Mats

+0

Да, вы правы. После того, как я добавил, песня может воспроизводиться в фоновом режиме. Ты спасаешь мою жизнь. Спасибо Маты! –

+0

Я настраивал все, как описано, но когда я нажимаю кнопку «домой», музыка останавливается. что я могу проверить дальше? – Arcadian

ответ

2

Для аудио продолжать работать в фоновом режиме, вы должны добавить ключ под названием Необходимый фон Режимы в вашем info.plist со значением App воспроизводит звук .Но это использование не очень способствовало яблоко, если это не абсолютно необходимо ,

+0

На деньги, спасибо. –