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

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值