OC语法
- (void)setUpCommandCenter {
NSLog(@"锁屏setUpCommandCenter");
MPRemoteCommandCenter *commandCenter = [MPRemoteCommandCenter sharedCommandCenter];
[commandCenter.playCommand removeTarget:self];
[commandCenter.pauseCommand removeTarget:self];
//禁用pre,next
MPRemoteCommand *previousTrackCommand = commandCenter.previousTrackCommand;
previousTrackCommand.enabled = NO;
MPRemoteCommand *nextTrackCommand = commandCenter.nextTrackCommand;
nextTrackCommand.enabled = NO;
// 锁屏播放
MPRemoteCommand *playCommand = commandCenter.playCommand;
playCommand.enabled = YES;
[playCommand addTargetWithHandler:^MPRemoteCommandHandlerStatus(MPRemoteCommandEvent * _Nonnull event) {
//
return MPRemoteCommandHandlerStatusSuccess;
}];
MPRemoteCommand *pauseCommand = commandCenter.pauseCommand;
pauseCommand.enabled = YES;
[pauseCommand addTargetWithHandler:^MPRemoteCommandHandlerStatus(MPRemoteCommandEvent * _Nonnull event) {
NSLog(@"setupLockScreenControlInfo pauseCommand");
//
return MPRemoteCommandHandlerStatusSuccess;
}];
// 播放和暂停按钮(耳机控制)
MPRemoteCommand *playPauseCommand = commandCenter.togglePlayPauseCommand;
playPauseCommand.enabled = YES;
[playPauseCommand addTargetWithHandler:^MPRemoteCommandHandlerStatus(MPRemoteCommandEvent * _Nonnull event) {
if (_isPlaying) {
}else {
}
return MPRemoteCommandHandlerStatusSuccess;
}];
}
Swift语法
private func setUpCommandCenter() {
let commandCenter = MPRemoteCommandCenter.shared()
commandCenter.playCommand.isEnabled = true
commandCenter.playCommand.addTarget { [unowned self] event in
print("audio play playCommand")
if audioPlayer.rate == 0.0 {
self.play()
return .success
}
return .commandFailed
}
commandCenter.pauseCommand.isEnabled = true
commandCenter.pauseCommand.addTarget { [unowned self] event in
if audioPlayer.rate != 0.0 {
self.pause()
return .success
}
return .commandFailed
}
commandCenter.previousTrackCommand.isEnabled = true
commandCenter.previousTrackCommand.addTarget { [unowned self] event in
self.playPrevious()
return .success
}
commandCenter.nextTrackCommand.isEnabled = true
commandCenter.nextTrackCommand.addTarget { [unowned self] event in
self.playNext()
return .success
}
commandCenter.togglePlayPauseCommand.isEnabled = true
commandCenter.togglePlayPauseCommand.addTarget { [unowned self] event in
if audioPlayer.rate == 0.0 {
self.play()
return .success
}else{
self.pause()
return .success
}
}
commandCenter.changePlaybackPositionCommand.isEnabled = true
commandCenter.changePlaybackPositionCommand.addTarget(self, action:
#selector(self.changedThumbSlider(_:)))
}
@objc func changedThumbSlider(_ event: MPChangePlaybackPositionCommandEvent) ->
MPRemoteCommandHandlerStatus {
audioPlayer.seek(to: CMTime.init(seconds: event.positionTime,
preferredTimescale: 1))
return .success
}