AVPlayer 音乐播放后台播放,以及锁屏主题设置
第一步:在appDelegate中通知app支持后台播放:在方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {}
中添加如下代码:
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
//默认情况下扬声器播放
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession setActive:YES error:nil];
第二步:在info.plist文件中添加一个key项
第三步:在播放控制界面接受远程控制
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:YES];
// 开始接受远程控制
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self resignFirstResponder];
} - (void)viewWillDisappear:(BOOL)animated
{
// 接触远程控制
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
// 重写父类成为响应者方法
- (BOOL)canBecomeFirstResponder
{
return YES;
}
第四步:对远程控制事件作出相应的操作
//重写父类方法,接受外部事件的处理
- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {
NSLog(@"remote");
if (receivedEvent.type == UIEventTypeRemoteControl) { switch (receivedEvent.subtype) { // 得到事件类型 case UIEventSubtypeRemoteControlTogglePlayPause: // 暂停 ios6
[self.player pause]; // 调用你所在项目的暂停按钮的响应方法 下面的也是如此
break; case UIEventSubtypeRemoteControlPreviousTrack: // 上一首 [self lastMusic:nil];
break; case UIEventSubtypeRemoteControlNextTrack: // 下一首
[self nextMusic:nil];
break; case UIEventSubtypeRemoteControlPlay: //播放
[self playMusic:nil];
break; case UIEventSubtypeRemoteControlPause: // 暂停 ios7
[self playMusic:nil];
break; default:
break;
}
}
}
第五步:设置锁屏主题
注意这个播放仅需要在播放状态改变的时候调用,例如初始化播放器,上一首下一首等操作
//Now Playing Center可以在锁屏界面展示音乐的信息,也达到增强用户体验的作用。
////传递信息到锁屏状态下 此方法在播放歌曲与切换歌曲时调用即可 - (void)configNowPlayingCenter {
NSLog(@"锁屏设置");
// BASE_INFO_FUN(@"配置NowPlayingCenter");
NSMutableDictionary * info = [NSMutableDictionary dictionary];
//音乐的标题
[info setObject:self.nameLabel.text forKey:MPMediaItemPropertyTitle];
//音乐的艺术家
NSString *author= [[self.playlistArr[self.currentNum] valueForKey:@"songinfo"] valueForKey:@"author"];
[info setObject:author forKey:MPMediaItemPropertyArtist];
//音乐的播放时间
[info setObject:@(self.player.currentTime.value) forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime];
//音乐的播放速度
[info setObject:@() forKey:MPNowPlayingInfoPropertyPlaybackRate];
//音乐的总时间
[info setObject:@(self.totalTime) forKey:MPMediaItemPropertyPlaybackDuration];
//音乐的封面
MPMediaItemArtwork * artwork = [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageNamed:@"0.jpg"]];
[info setObject:artwork forKey:MPMediaItemPropertyArtwork];
//完成设置
[[MPNowPlayingInfoCenter defaultCenter]setNowPlayingInfo:info];
}
AVPlayer 音乐播放后台播放,以及锁屏主题设置的更多相关文章
- 重新想象 Windows 8 Store Apps (65) - 后台任务: 音乐的后台播放和控制
[源码下载] 重新想象 Windows 8 Store Apps (65) - 后台任务: 音乐的后台播放和控制 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 后台 ...
- iOS - Mac 锁屏快捷键设置
Mac 锁屏快捷键设置 control + shift + Eject 锁屏快捷键 如果用户要离开电脑一段时间,可以选择直接把笔记本直接合上.但是这样原先在跑的进程就会挂起或者结束,如果正在下载,那么 ...
- Linux系列:Ubuntu/fedora实用小技巧—禁止自动锁屏、设置免密码自动登录、免密码执行sudo操作
首先声明:该文虽以Ubuntu 13.04为例,同样适用于Fedora 17(已测试),但在较低版本的Ubuntu下可能有所差异,具体看后面的注意事项. 技巧目录: 解决Ubuntu下每隔几分钟自动锁 ...
- iOS开发--QQ音乐练习,后台播放和锁屏界面
一.设置后台播放 首先允许程序后台播放 代码实现 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOpti ...
- Android-bindService本地服务-音乐播放(后台播放)-下
在上一篇 Android-bindService本地服务-音乐播放-上,博客中是不能在后台中播放到,这次博客增加了一个后台播放 通常情况下,Activity切换到后台,Service提升到前台进程, ...
- ubuntu 18.04取消自动锁屏以及设置键盘快捷锁屏
1:操作设置取消自动锁屏: setting-->power--->never 2: 设置自动锁屏快捷键: 快捷键设置一般在setting-->devices--->keybo ...
- Windows 聚焦的锁屏壁纸设置为桌面壁纸
需求: Windows的锁屏壁纸偶尔遇到非常喜欢的壁纸,想设置为桌面壁纸. 步骤如下: 1. “Windows 聚焦”的锁屏壁纸都保存在隐藏文件夹 --- Assets里. a. 打开“资源管理器 b ...
- iOS音乐后台播放及锁屏信息显示
实现音乐的后台播放.以及播放时,能够控制其暂停,下一首等操作,以及锁屏图片歌曲名等的显示 此实例须要真机调试.效果图例如以下: project下载:githubproject下载 实现步骤: 1.首先 ...
- OC-音乐播放器-锁屏处理
QQ音乐播放的过程中,锁屏状态下的效果如下: 也就是说,QQ音乐播放过程中,添加锁屏远程事件的监听. 本文只记录本人知道的小知识点,不提供完整的代码. 实现的原理: (1)获取锁屏歌曲信息中心:MPN ...
随机推荐
- svn 连接超时,连接失败解决办法
1.确认服务是否开启 2.Windows防火墙是否开启,如开启则关闭防火墙 3.安全软件是否将3306与443端口关闭. 关闭后无法连接
- 如何把OpenWrt安装到PC?
前言 什么是openwrt? 它是一个适用于路由器的Linux发行版.和其他Linux发行版一样,它也内置了包管理工具,你可以从一个软件仓库里直接安装软件.OpenWrt可以用在所有需要嵌入式Linu ...
- Java基础学习篇---------多态
一.多态性的理解 1.向上转型:子类为父类对象实例化,调用的一定是子类覆写的方法,他们之间找的是共性 2.向下转型:子类扩充了父类的某些功能,而父类中没有该功能,他们之间找的是特性 案例: Numbe ...
- Service的使用
一.Service的适用范围 1.本地服务(Local Service): 应用程序的内部(单个APP) startServcie stopService stopSelf stopSelfRe ...
- 926. Flip String to Monotone Increasing
A string of '0's and '1's is monotone increasing if it consists of some number of '0's (possibly 0), ...
- MySQL(安装,服务,创建用户及授权)
参考:http://www.cnblogs.com/wupeiqi/p/5713315.html 单机程序(自己DB) 单机程序(公用DB) MySQL:是用于管理文件的一 ...
- 00-python概述。
人生苦短,我用Python. -发展历史: - 1989年,由Guido van Rossum开始开发, - 1991年,发布第一个公开发行版,第一个Python编译器(同时也是解释器)诞生. - 2 ...
- OpenCV --- 修改图像的对比度、亮度 、RGB转Gray图像、修改图像的尺寸
#include <opencv2/core.hpp> #include <opencv2/imgcodecs.hpp> #include <opencv2/highgu ...
- h5博彩webapp项目实例|h5棋牌游戏|h5博彩app案例
html5实现的博彩webapp.h5棋牌app实例,运用h5+css3+zepto+jQ+swiper+layer等技术进行布控开发,750px最大宽度适配手机端设备,采用flex+rem布局样式. ...
- 【Canal源码分析】Canal Server的启动和停止过程
本文主要解析下canal server的启动过程,希望能有所收获. 一.序列图 1.1 启动 1.2 停止 二.源码分析 整个server启动的过程比较复杂,看图难以理解,需要辅以文字说明. 首先程序 ...