iOS 音乐 锁屏显示 控制

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

 


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/longer504010/article/details/49947113
个人分类: ios开发
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

iOS 音乐 锁屏显示 控制

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭