关于音乐播放器锁屏播放,后台播放,封面显示等
1. 如果应用需要后台播放:那么在appdelegate 中添加
[AVAudioSession *session = [AVAudioSession sharedInstance];[session setCategory:AVAudioSessionCategoryPlayback error:nil]];
2. 锁屏显示歌曲信息:主要思路就是将自定义播放器中的歌曲信息和系统中MPNowPlayingInfoCenter播放器管连接起
第一步在自定义播放器界面添加库文件#import <MediaPlayer/MPNowPlayingInfoCenter.h>第二步:创建函数(这个函数里面实现的是将歌曲信息负值给MPplayingcenter)-(vold)configplayingInfo{if(NSClassFromString(@"MPNowPlayingInfoCenter")){NSMutableDictionary *dic=[NSMutableDictionary alloc] init];[dic setObject:[NSNumber numberWithDouble:zongtime] forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime]--这个是将歌曲总时间复制给系统播放器;===MPMediaItemPropertyPlaybackDuration《当前时间》MPMediaItemPropertyTitle《歌曲名》MPMediaItemPropertyArtist《歌手》MPMediaItemPropertyArtwork《歌曲封面图片》MPNowPlayingInfoPropertyPlaybackRate《这个是设定系统播放器每秒的速率》设置为1(注意:上面的时间用[【NSNumber numberWithDouble:当前时间】函数)复制给系统播放器[[【MPNowPlayingInfoCenter defaultCenter]setNowPlayingInfo:dict】;:dict];}
到此播放器的后台播放和封面显示就完成了,当然如果你要给你的播放器添加远程控制比如锁屏情况下上一首,下一首等操作
那么就需要添加能够接受远程控制事件
第一步:在appdelegate中添加
[appldcation beginReceivingRemoteControlEvents];//这个是给应用添加能接受远程控制(比如远程控制播放界面也要设置)[self becomeFirstResponder];
第一行代码是给应用添加远程控制事件告诉系统我已经准备好接受你的控制了
第二步:在进入后台函数中
- (void)applicationDidEnterBackground:(UIApplication *)application {// NSLog(@"3333");//告诉系统静如后台我要接受系统音乐播放器的控制事件[application beginReceivingRemoteControlEvents]; }
好了,这一步做完以后我们还要给自定义播放器界面添加能够接受远程事件的代码
第三步:在musicVC中
-(void)viewDidAppear:(BOOL)animated{[super viewDidAppear:animated];UIDevice *device = [UIDevice currentDevice];BOOL backgroundSupported = NO;if ( [device respondsToSelector:@selector(isMultitaskingSupported)] ){backgroundSupported = device.multitaskingSupported;}if ( backgroundSupported == YES ){[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];//注意这里,告诉系统已经准备好了[self becomeFirstResponder];}}//这个函数时将此界面设为第一响应者-(BOOL)canBecomeFirstResponder{return YES;}然后再实现下面这个函数-(void)remoteControlReceivedWithEvent:(UIEvent *)event{// NSLog(@"dddd");if(event.type==UIEventTypeRemoteControl){switch(event.subtype){case UIEventSubtypeRemoteControlPlay:NSLog(@"11111");{ [self playBtClick:self.playBt];// [self.player startPlay];// 切换播放、暂停按钮break;}case UIEventSubtypeRemoteControlPreviousTrack:{[self lastBtClick];// 播放上一曲按钮break;}case UIEventSubtypeRemoteControlNextTrack:{[self nextBtClick];// [self.player nextSong];// 播放下一曲按钮break;}case UIEventSubtypeRemoteControlTogglePlayPause:{// NSLog(@"222");//暂停// [self.player puasePlay];[self playBtClick:self.playBt];// 播放下一曲按钮break;}case UIEventSubtypeRemoteControlPause:{// [self.player lastSong];[self playBtClick:self.playBt];break;}default:break;}}}
到此音乐的后台播放,封面显示,封面控制完成了,但是此后台不是正真的后台(因为进入后台以后10分钟以后就自动死掉了)代码写的比较乱,望见谅
}
关于音乐播放器锁屏播放,后台播放,封面显示等相关推荐
- android 系统锁屏音乐播放器,Android实现音乐播放器锁屏页
本文实例为大家分享了Android音乐播放器锁屏页的具体代码,供大家参考,具体内容如下 首页我们先看一下效果图 下边来说一下实现逻辑,其主要思路就是新建一个activity使其覆盖在锁屏页上边. 一. ...
- 完美实现音乐播放器锁屏页
首页我们先看一下效果图 下边来说一下实现逻辑,其主要思路就是新建一个activity使其覆盖在锁屏页上边. 一.我们新建一个LockActivty,既然是四大组件之一,必不可少的在AndroidMan ...
- iOS音乐后台播放、锁屏封面及播放控制
在默认情况下App被切换到后台时,音乐的就停止播放了,但音乐类App的一般都会需要在后台继续播放,这样用户就可以一边听音乐,一边操作其他的App.对于这种情况我们可以对App做一些简单的配置,实现后台 ...
- iOS锁屏界面音频播放控制
公司的app里面有后台音频播放功能,最近发现,当在锁屏界面(后台)时,不能控制播放页面的音频播放,是因为没有实现远程控制事件处理. 下面说说大概实现过程:由于后台播放功能早已实现(不做详细叙述),这里 ...
- Android开发本地及网络Mp3音乐播放器(十二)创建NetMusicListAdapter、SearchResult显示网络音乐列表
转载请注明出处:http://blog.csdn.net/iwanghang/article/details/51290181 觉得博文有用,请点赞,请留言,请关注,谢谢!~ 实现功能: 实现NetM ...
- PPStream、PPlive等播放器花屏之解决办法
PPStream.PPlive等播放器花屏之解决办法 解决方法1:打开"Windows Meida Player"播放器,找到"工具"->"选项 ...
- 最新哔哩哔哩视频弹幕播放器源码+带后台/亲测无错误
正文: 最新哔哩哔哩视频弹幕播放器源码+带后台/亲测无错误,此款播放器源码添加及修复了很多功能,且所有源码均本地化,不存在外链的情况,测试环境:PHP7.0+MySQL5.6 安装教程: 1,访问/d ...
- video 满屏显示_HTML5 video播放器全屏(fullScreen)实现的方法
这篇文章主要介绍了HTML5 video播放器全屏(fullScreen)方法实例,本文直接给出一个完整代码实例,需要的朋友可以参考下 首先来说,这个标题具有误导性,但这样设置改标题也是主要因为vid ...
- React-Native之播放器全屏播放
React-Native之播放器全屏播放 前言 我们要在react-native中实现一个音/视频的播放器,首先就要使用大名鼎鼎的react-native-video库,该库在github上有5.3k ...
最新文章
- 第 2 章 Editor
- 利用一个继电器来实现脚踏鼠标按钮
- iShow UI for React 最佳实践
- 机器学习7/100天-K近邻算法
- javascript动画系列第二篇——磁性吸附
- flash 上传文件 java_Flash 二进制传图片到后台Java服务器接收
- ElasticStack系列之九 master、data 和 client 节点
- matlab入门学习(良心版本,适合小白)
- ESB 分布式处理技术 Remoting
- 常见路由器初始密码合集
- python基础教程:Python实现动态给类和对象添加属性和方法操作示例
- 【机器学习】几种常见的有监督学习算法
- 几何平均数和调和平均数是什么?有什么作用?详细资料讨论他们的区别
- Java支付宝第三方登陆开发过程
- 排序算法之python实现(上)
- 计算机房电器设备功率密度,WP155_R0_数据中心空间和功率密度需求的计算.pdf
- Bug系列路径规划算法原理介绍(三)——Tangent BUG算法
- 我终于把Boss直聘上热度最高的Java面试八股文总结,渗透面试核心知识点!
- mmhmm重塑视频会议、2020新款emoji可爱来袭、微软将推云游戏服务xCloud等| Decode the Week...
- EtherCAT总线介绍及从站硬件设计