关闭

iOS 音乐 锁屏显示 控制

123人阅读 评论(0) 收藏 举报
分类:

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步妥妥的

 


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1352次
    • 积分:98
    • 等级:
    • 排名:千里之外
    • 原创:8篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章分类