iosobjective-cswiftavaudiosessionmpnowplayinginfocenter

Change lock screen background audio controls text?


I have an iOS app that streams background audio using AVAudioSession. It is working correctly, but I am curious, is there any way to change the text on the lock screen audio controls? Right now it simply displays the name of my app, but I would like to change it to the name of the track.

Additionally, the multi-tasking bar has no text under the controls- is there a way to add the track name there, as the iPod app does?


Solution

  • iOS 5 now supports setting the track title as well as an album art image in both the lock screen and the remote playback controls (the controls you get when you double-click the home button and swipe right). Take a look at the MPNowPlayingInfoCenter class. Of course, to maximize compatibility, you'd want to test whether MPNowPlayingInfoCenter is available, by doing something like:

    if ([MPNowPlayingInfoCenter class])  {
       /* we're on iOS 5, so set up the now playing center */
       UIImage *albumArtImage = [UIImage imageNamed:@"HitchHikersGuide"];
       albumArt = [[MPMediaItemArtwork alloc] initWithImage:albumArtImage];
    
        NSDictionary *currentlyPlayingTrackInfo = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"Life, the Universe and Everything", [NSNumber numberWithInt:42], albumArt, nil] forKeys:[NSArray arrayWithObjects:MPMediaItemPropertyTitle, MPMediaItemPropertyPlaybackDuration, MPMediaItemPropertyArtwork, nil]];
        [MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = currentlyPlayingTrackInfo;
    }