Can I hide the rewind button in the iOS Lock Screen Music controls?
Asked Answered
R

3

11

My app doesn’t support going back to previous tracks, and I’m wondering if I can tell the lock screen music controls to hide their rewind/previous track button. I use the MPNowPlayingInfoCenter to communicate that information to the lock screen.

Pretty simple question, can it be done? For instance, to only show Play/Pause, and Skip Forward?

Rah answered 24/1, 2014 at 13:36 Comment(0)
W
20

As of iOS 7.1 there is a way to customize the controls available in the lock screen and command center (and probably many other accessories): MPRemoteCommandCenter.

Regarding your question you can do the following:

[MPRemoteCommandCenter sharedCommandCenter].previousTrackCommand.enabled = NO;
[MPRemoteCommandCenter sharedCommandCenter].skipBackwardCommand.enabled = NO;
[MPRemoteCommandCenter sharedCommandCenter].seekBackwardCommand.enabled = NO;

// You must also register for any other command in order to take control
// of the command center, or else disabling other commands does not work.
// For example:
[MPRemoteCommandCenter sharedCommandCenter].playCommand.enabled = YES;
[[MPRemoteCommandCenter sharedCommandCenter].playCommand addTarget:self action:@selector(play)];

Please see this Stack Overflow answer for more general information about MPRemoteCommandCenter.

Whereto answered 8/3, 2015 at 10:25 Comment(3)
"You must also register for any other command in order to take control of the command center, or else disabling other commands does not work." Thank you for this valuable piece of info!Halfdan
I see that it hides the forward buttons as wellHailstorm
Hi I tried this but some white overlay appearing on the player screen and in control center i cant able to new buttons. DO you have any idea what will be the issue?Bostwick
G
9

OUTDATED:

I think the short answer is no. The documentation says this -

"You do not have direct control over which information is displayed, or its formatting. You set the values of the now playing info center dictionary according to the information you want to provide to the system. The system, or the connected accessory, handles the information’s display in a consistent manner for all apps."

Goff answered 24/1, 2014 at 14:13 Comment(1)
Interesting. Thanks :)Rah
D
0

I found if I did not set the nowPlayingInfo n MPNowPlayingInfoCenter then the changes I was trying to make away from the default lock screen player did not register. Be sure you are setting MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo at some point like below:

 var songInfo: NSMutableDictionary = [
        MPMediaItemPropertyTitle: "song title",
        MPMediaItemPropertyArtist: "artiest ",
    ]
    MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo = songInfo as [NSObject : AnyObject]
Dirge answered 10/6, 2019 at 20:26 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.