Steelzeh
Steelzeh

Reputation: 284

MPMoviePlayerController Background playing

Okay guys i have a problem. I'm stream MPMoviePlayerController and i want it to play audio in background and i've somewhat achieved this.

This is what i do in my -didFinishLaunchingWithOptions:

    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
    [audioSession setActive:YES error:nil];

    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];

Now whenever the application calls -applicationWillResignActive: i do a post notification to continue the playback. And this works but it's an ugly fix. As there is a second delay between the sound stopping and the notification being called. So the playback stops for a second and then continues again by calling the notification which just says [viewPlayer play];

And many other have achieved smooth background playback. Like spotify or other apps whenever you enter background mode there is no sound lag/clipping in sound. This is really annoying to listen to whenever i press the home button or lock the phone.

Yes i did set the background mode for playback.

I have also tried -applicationDidEnterBackground: but this notification is even slower. It comes after -applicationWillResignActive:

I have no idea how to fix this, and or how others achieved it. I have looked through almost all other similar questions. None have my problem.

Thanks in advance.

Upvotes: 3

Views: 482

Answers (1)

Jasper
Jasper

Reputation: 7107

I've recently used a framework to stream YouTube video inline in a UIView. This framework has a category on MPMoviePlayerController which works pretty well. You notice a change in the music when going to background but it is still acceptable.

The category can be found here:

MPMoviePlayerController+BackgroundPlayback.h MPMoviePlayerController+BackgroundPlayback.m

Upvotes: 1

Related Questions