Search code examples
iosmpmovieplayercontroller

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!


Solution

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