MPMoviePlayerController, воспроизводящий аудиопоток в фоновом режиме

У меня проблемы с воспроизведением аудиопотока, когда приложение входит в фоновый режим.

Я использую код для запуска потока:

NSURL *mediaURL = [NSURL URLWithString:@"http://url.to.my.stream"];

MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:mediaURL];

[[NSNotificationCenter defaultCenter] addObserver:self 

                                         selector:@selector(moviePlayBackDidFinish:) 

                                             name:MPMoviePlayerPlaybackDidFinishNotification 

                                           object:nil]; 



[mp setControlStyle:MPMovieControlStyleFullscreen];

[mp setMovieSourceType:MPMovieSourceTypeStreaming];

[mp setFullscreen:YES];



[self.view addSubview:[mp view]];



[mp prepareToPlay];

[mp play];

Работает отлично. Но несмотря на то, что я установил флаг «Приложение воспроизводит звук» в списке свойств, когда приложение входит в фоновый режим, поток перестает воспроизводиться.

Как заставить мое приложение воспроизводить аудиопоток в фоновом режиме?

С наилучшими пожеланиями и большое спасибо за помощь!

Ответы на вопрос(2)

Решение Вопроса

Многозадачность iOS: фоновое аудио

После создания проекта перейдите в APP-Info.plist и добавьте UIBackgroundModes в качестве новой строки. Затем следует создать массив.

Откройте массив и справа от пункта 0 установите его в аудио.

РЕДАКТИРОВАТЬ

Ваш AVAudioSession настроен правильно?

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession setActive:YES error:nil];
 MrBr25 февр. 2012 г., 17:50
Спасибо, мужик!! Это добилось цели :-)
 MrBr25 февр. 2012 г., 17:18
да, я сделал это, но это не сработало. В этом уроке парень использует AVAudio Framework. Я использую Media Player, потому что AV Framework по какой-то причине не воспроизводит мой аудиопоток ...
 dom25 февр. 2012 г., 17:30
Взгляните на мою правку.

сначала вы должны дать вашему приложению разрешения на воспроизведение музыки в фоновом режиме (в вашем .plis), после этого перейдите к желаемому классу и реализуйте этот код, сначала импортируйте и метод для воспроизведения Музыка.

#import <MediaPlayer/MPNowPlayingInfoCenter.h>
#import <MediaPlayer/MPMediaItem.h>
#import <AVFoundation/AVFoundation.h>

---- о ----

-(void) playMusic{

     [[AVAudioSession sharedInstance] setDelegate: self];

     NSError *myErr;

     // Initialize the AVAudioSession here.
    if (![[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&myErr]) {
       // Handle the error here.
       NSLog(@"Audio Session error %@, %@", myErr, [myErr userInfo]);
    }else{
       // Since there were no errors initializing the session, we'll allow       begin receiving remote control events
       [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    }

    //initialize our audio player
    audioPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://www.cocoanetics.com/files/Cocoanetics_031.mp3"]];

    [audioPlayer setShouldAutoplay:NO];
    [audioPlayer setControlStyle: MPMovieControlStyleEmbedded];
    audioPlayer.view.hidden = YES;

    [audioPlayer prepareToPlay];

    [audioPlayer play];
}//end playmusic
 Gary Storey22 июн. 2015 г., 18:18
Было бы полезно, если бы вы предоставили объяснение со своим кодом. Выделите, что отличается, и как вы заставили его работать. Код только ответы не одобряются.

Ваш ответ на вопрос