第一步,检查你的AppDelegate是不是继承于UIResponder,有的是自动生成,有的人习惯手写,如果是继承于NSObject请改为 AppDelegate : UIResponder
第二步,在音乐播放的时候,写上歌曲信息和图片信息:

- (void) setMediaInfo : (UIImage *) img andTitle : (NSString *) title andArtist : (NSString *) artist
{
MYDEBUGPRINT(NSLog(@"begen set album art, to MPNowPlayingInfoCenter."));
if (NSClassFromString(@"MPNowPlayingInfoCenter")) {
NSMutableDictionary * dict = [[NSMutableDictionary alloc] init];

[dict setObject:title forKey:MPMediaItemPropertyAlbumTitle];
[dict setObject:artist forKey:MPMediaItemPropertyArtist];
[dict setObject:[NSNumber numberWithInt:[playlist.refresh intValue]] forKey:MPMediaItemPropertyPlaybackDuration];

MPMediaItemArtwork * mArt = [[MPMediaItemArtwork alloc] initWithImage:img];
[dict setObject:mArt forKey:MPMediaItemPropertyArtwork];
[MPNowPlayingInfoCenter defaultCenter].nowPlayingInfo = nil;
[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:dict];
[dict release];
}
}
上面的if (NSClassFromString(@"MPNowPlayingInfoCenter"))避免了版本兼容问题,这个API貌似只出现在5里面。

现在你可以发现,上面的代码可能不起作用,而且待机屏的播放暂停也不会起作用。
第三步,在appDelegate的加载完成回调里面写
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
你会发现,,只有信息出来,但是播放控制还是不起作用。。。。。

呵呵,绕弯子了。

重写这个方法了
- (BOOL) canBecomeFirstResponder {
return YES;
}

- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {

if (receivedEvent.type == UIEventTypeRemoteControl) {

switch (receivedEvent.subtype) {

case UIEventSubtypeRemoteControlTogglePlayPause:
NSLog(@"xxxxxxxxxxx11111");
break;
case UIEventSubtypeRemoteControlNextTrack:
NSLog(@"xxxxxxxxxxx3333");
break;
case UIEventSubtypeRemoteControlPreviousTrack:
NSLog(@"xxxxxxxxxxx4444");
break;
default:
break;
}
}
}

OK,炫炫的效果出来了,,,,,
当然becomeFirstResponder也可以写在ViewControll或者View里面。
但是作为整个应用的状态来说,个人认为,写在appDelegate比较好。

这里有点考虑,becomeFirstResponder后,会不会对应用的某些功能有影响,,,

最后附MPNowPlayingInfoCenter可显示的内容,但是本人还有些没有试出来,,不知为何。。。

some properties specific to this class. In iOS 5.0, the now playing info center supports the following media item property keys:

MPMediaItemPropertyAlbumTitle
MPMediaItemPropertyAlbumTrackCount
MPMediaItemPropertyAlbumTrackNumber
MPMediaItemPropertyArtist
MPMediaItemPropertyArtwork
MPMediaItemPropertyComposer
MPMediaItemPropertyDiscCount
MPMediaItemPropertyDiscNumber
MPMediaItemPropertyGenre
MPMediaItemPropertyPersistentID
MPMediaItemPropertyPlaybackDuration
MPMediaItemPropertyTitle

Additional Metadata Properties
These properties for the now playing info center dictionary supplement the available media item properties, as described in the Overview in this document.

NSString *const MPNowPlayingInfoPropertyElapsedPlaybackTime
NSString *const MPNowPlayingInfoPropertyPlaybackRate;
NSString *const MPNowPlayingInfoPropertyPlaybackQueueIndex;
NSString *const MPNowPlayingInfoPropertyPlaybackQueueCount;
NSString *const MPNowPlayingInfoPropertyChapterNumber;
NSString *const MPNowPlayingInfoPropertyChapterCount;

http://tieba.baidu.com/p/1394006679

播放音乐 锁屏 状态下,看到歌手图片相关推荐

  1. Android锁屏状态下service不能正常工作的探究

    理想情况下例如音乐播放等service在锁屏状态下都是可以正常播放的. 最近在用android5.0做开发,写了蓝牙4.0的服务和socket的网络请求服务,需求是每隔一段时间自动查询服务器数据,如果 ...

  2. Android仿QQ锁屏状态下消息提醒(震动+提示音)

    导读: 最近在开发一个定时提醒业务,类似于闹钟,然后遇到了一个问题,当APP应用在后台运行时,用户关闭了手机屏幕(手机进入灭屏休眠状态),这个时候使用系统震动和闹钟没有起到作用.why? 同样是灭屏休 ...

  3. 游戏陪玩平台源码开发,锁屏状态下消息提醒的实现

    当游戏陪玩平台源码在后台运行时,如果用户关闭了手机屏幕(手机进入灭屏休眠状态),这个时候有消息进来怎么办?这就需要在游戏陪玩平台源码开发时实现手机锁屏状态下消息提醒功能. 解决思路: 1.游戏陪玩平台 ...

  4. android可以有一个悬浮窗口在进入屏保状态显示,点击进入应用,Android如何实现锁屏状态下弹窗...

    前言 想在锁屏上面实现弹窗,第一个想法就是利用 WindowManager设置 Window的 Flag,通过设置 Flag的显示优先级来让窗口显示在锁屏的上面. 接下来就是试验可能相关的 Windo ...

  5. Android锁屏状态下信息的显示

    Android窗口的显示很简单,但很多人不知道锁屏状态下窗口的显示,今天就来展示一下. 先上QQ的效果图 1:显示 就一句代码,在需要显示的Activity中onCreate方法中加入 this.ge ...

  6. Android锁屏状态下点亮屏幕并弹窗提醒

    类似于手机锁屏状态下QQ来消息然后点亮屏幕并弹窗,如图. 相信QQ的这个功能大家都是很熟悉的了,下面就开始讲具体的实现步骤. 一.新建一个Activity并在OnCreate中添加四个标识 @Over ...

  7. 安卓开发--关于锁屏状态下如何实现消息推送

    安卓开发–关于锁屏状态下如何实现消息推送 1. 新建一个AlarmHandlerActivity并设置在锁屏状态下弹窗! onCreate方法中添加标志: /* * 分别是锁屏状态下显示,解锁,保持屏 ...

  8. 锁屏状态下NFC不可用

    锁屏状态下NFC不可用 锁屏状态下NFC不可用 1. Description 2. Analysis 3. Solution 4. Summary 1. Description 在工厂测试软件中,需要 ...

  9. Android 锁屏状态下启动应用很慢的原因分析

    最近在工作中遇到一个需求就是,在锁屏状态下直接拨打电话,功能实现之后测试给的反馈是操作之后到电话拨出的时间太长(大概5秒).希望能优化一下.后来经过分析确定不是应用层的问题.然后就一顿百度.Googl ...

最新文章

  1. 基于 react, redux 最佳实践构建的 2048
  2. python怎么安装matplotlib-python安装matplotlib
  3. DL之MobileNetV2:MobileNetV2算法的架构详解(包括ReLu的意义)
  4. Windows 8 Hello World
  5. 中科院sci分区表_最新 | 2020中科院SCI分区表 食品科技类
  6. VTK修炼之道14:图像处理_创建
  7. PHP预防XSS攻击,ajax跨域攻击的方法
  8. CORS(跨域资源共享)
  9. PHP中unset,array_splice删除数组中元素的区别
  10. python颜色表_Python+matplotlib绘制不同大小和颜色散点图实例
  11. Python+sklearn使用支持向量机算法实现数字图片分类
  12. php数据库 datetime转化时间错,分析php日期转时间戳
  13. LeetCode 答案(Easy)(601-700)
  14. 物联网毕业设计 单片机智能温控风扇设计与实现
  15. 计算机伦理学案例分析,医药伦理学案例分析
  16. python海龟交易策略_python 海龟交易法则 股票回测-双均线规则(一)
  17. 牛客网--23803--DongDong认亲戚
  18. 重邮计算机学院艺术团,毕业季 | 重庆邮电大学2019届 “邮梦青春,毕业季”文艺晚会...
  19. 华为MA5600配置radius认证登陆
  20. 正则表达式三 不捕获文本 前瞻后顾 否定前瞻 否定后顾 贪婪匹配 懒惰匹配

热门文章

  1. kali渗透综合靶机(三)--bulldog2靶机
  2. Mac系统 - zsh所有命令失效解决方式
  3. 中电海康校招面试数据存储与处理事业部
  4. 【水果识别】形态学水果识别(含识别率)【含GUI Matlab源码 907期】
  5. 黑群晖DSM安装教程及详细配置
  6. 云龙开炮版飞机大战(Java+JavaSwing+关卡+技能物品+宠物+商店界面+可切换音乐界面)
  7. 华东理工大学matlab怎么下载,华东理工大学MATLAB.ppt
  8. Jquery datatable 动态隐藏列(根据有无值)
  9. 985高校博士因文言文致谢走红!导师评价其不仅SCI写得好...
  10. ubuntu DNS修改