1 APPDelegate.m 文件中 设置接收外部控制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//锁屏控制*********/
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
}
2 设置可以第一响应者
-(BOOL)canBecomeFirstResponder{
return YES;
}
//具体的事件接收逻辑控制,这里的<span style="font-family: Arial, Helvetica, sans-serif;">PlayerViewController是自定义的播放类</span>
-(void)remoteControlReceivedWithEvent:(UIEvent *)event{
PlayerViewController *player = [PlayerViewController sharedManager];
switch (event.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
if ([player.mMPayer isPlaying]) {
[player.mMPayer pause];
} else {
[player.mMPayer start];
}
break;
case UIEventSubtypeRemoteControlPlay:
[player.mMPayer start];
break;
case UIEventSubtypeRemoteControlPause:
[player.mMPayer pause];
break;
case UIEventSubtypeRemoteControlPreviousTrack:
if ([player.mMPayer isPlaying]) {
[player.mMPayer pause];
}
[player playNextMusicOrPre:YES];
break;
case UIEventSubtypeRemoteControlNextTrack:
if ([player.mMPayer isPlaying]) {
[player.mMPayer pause];
}
[player playNextMusicOrPre:NO];
break;
default:
break;
}
}
3 在自定义的播放类 PlayerViewController中 播发某个音乐时对 调用自定义的 [self configNowPlayingInfoCenter]方法 对 锁屏的内容进行填充 首先导入 #import <MediaPlayer/MediaPlayer.h>
一般的第三方播放器 也是基于ios框架进行二次封装 所以使用 MediaPlayer类中方法什么的也是妥妥的
-(void)configNowPlayingInfoCenter{
if (NSClassFromString(@"MPNowPlayingInfoCenter")) {
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:@"story_name" forKey:MPMediaItemPropertyTitle]; //名字
[dict setObject:@"catelog_name" forKey:MPMediaItemPropertyArtist]; //作者
//[dict setObject:@"album" forKey:MPMediaItemPropertyAlbumTitle]; //专辑
[dict setObject:[NSNumber numberWithInteger:mDuration/1000] forKey:MPMediaItemPropertyPlaybackDuration]; //传入总时间 就会自动刷新进度条 (单位 秒)
MPMediaItemArtwork *artwork = [[MPMediaItemArtwork alloc] initWithImage:imageViewIcon.image]; //显示的图片
[dict setObject:artwork forKey:MPMediaItemPropertyArtwork];
[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:dict]; //填充
}
}
3步妥妥的