iOS 音乐 锁屏显示 控制

原创 2015年11月20日 15:15:06

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

 


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

iOS 音乐类App必备功能:后台播放、锁屏封面、远程播放控制

转载自http://blog.csdn.net/u012716788/article/details/46583561    感觉对于做音乐类的APP非常有用,自己收藏,以备不时之需 前言 ...

iOS锁屏页面控制音乐播放

//1、调整音频会话设置,确保应用进入后台或静音开关已开启时音频仍将继续播放 2、锁屏状态下显示媒体信息 3、锁屏上的空间可以控制音频播放#import "ViewController.h" #imp...

IOS锁屏状态播放音乐时显示专辑信息和图片

先搁两张效果图:                         其实核心的东西很简单就是设置[MPNowPlayin...

iOS音乐后台播放及锁屏信息显示

实现音乐的后台播放,以及播放时,可以控制其暂停,下一首等操作,以及锁屏图片歌曲名等的显示...

iOS音乐后台播放及锁屏信息显示

实现音乐的后台播放,以及播放时,可以控制其暂停,下一首等操作,以及锁屏图片歌曲名等的显示 此实例需要真机调试,效果图如下: 工程下载:github工程下载 实现步骤: 1、首...

android 锁屏音乐控制

1.是否有音乐应用播放音乐的广播监听 // 注册音乐播放的广播 IntentFilter mFilter = new IntentFilter(); mFilter.addAction("com....

关于音乐播放器锁屏播放,后台播放,封面显示等

1如果应用需要后台播放:那么在appdelegate 中添加     [AVAudioSession *session = [AVAudioSession sharedInstance]; ...

QQ音乐/酷狗音乐锁屏控制实现原理

我实现的效果混乱的锁屏控制Android自4.0版本, 也就是API level 14开始, 加入了锁屏控制的功能, 相关的类是RemoteControlClient, 这个类在API level 2...

QQ音乐/酷狗音乐锁屏控制实现原理

http://www.zhihu.com/question/31992887 我实现的效果 混乱的锁屏控制 android自4.0版本, 也就是API level 14开始, 加入了锁屏控制的功...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS 音乐 锁屏显示 控制
举报原因:
原因补充:

(最多只允许输入30个字)