Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MPMoviePlayerController playing audio stream in the background

I am running into trouble with playing an audio stream when the application enters background.

I use the code to start the stream:

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];

It works perfect. But allthough I set the flag 'App plays audio' in the property list when the app enters background the stream stops playing.

How do I make my application play the audio stream in the background?

Best regards and thanks a lot for help!

like image 389
MrBr Avatar asked Feb 25 '12 16:02

MrBr


1 Answers

I didn't tried it myself but this looks promising: iOS Multitasking: Background Audio

Once the project has been created go to APP-Info.plist and add UIBackgroundModes as a new row. It should then create the array.

Open the array and to the right of Item 0 set it to audio.

EDIT

Is your AVAudioSession set up properly?

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession setActive:YES error:nil];
like image 191
dom Avatar answered Sep 20 '22 21:09

dom