swift锁屏播放,音乐进度更新,专辑,歌手名显示
- 我自己用的音乐播放器是自带的AVPlayer
- 导入头文件#import <MediaPlayer/MediaPlayer.h>
- 远程控制事件接收与处理
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
-(void)viewDidDisappear:(BOOL)animated{
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];
}
- (void)remoteControlReceivedWithEvent:(UIEvent *)event
{
if (event.type == UIEventTypeRemoteControl) {
switch (event.subtype) {
case UIEventSubtypeRemoteControlPlay:
[self play]; // 播放
break;case UIEventSubtypeRemoteControlPause:
[self pause];//暂停
break;case UIEventSubtypeRemoteControlPreviousTrack:
[self forwardItem]; // 播放上一曲按钮
break;case UIEventSubtypeRemoteControlNextTrack:
[self nextItem]; // 播放下一曲按钮
break;default:
break;
}
}
} - 传递信息到锁屏状态下- (void)configPlayingInfo 此方法在播放歌曲与切换歌曲时调用即可
{
if (NSClassFromString(@"MPNowPlayingInfoCenter")) {
if ((lastPlayItem != self.player.currentItem) && !isRepeat) {
lastPlayItem = self.player.currentItem;
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setObject:self.titleLabel.text forKey:MPMediaItemPropertyTitle];//歌曲名设置[dict setObject:self.artistLabel.text forKey:MPMediaItemPropertyArtist];//歌手名设置
[dict setObject:[[MPMediaItemArtwork alloc] initWithImage:self.artwork.image] forKey:MPMediaItemPropertyArtwork];//专辑图片设置
[dict setObject:[NSNumber numberWithDouble:CMTimeGetSeconds(self.player.currentItem.currentTime)] forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime]; //音乐当前已经播放时间
[dict setObject:[NSNumber numberWithFloat:1.0] forKey:MPNowPlayingInfoPropertyPlaybackRate];//进度光标的速度 (这个随 自己的播放速率调整,我默认是原速播放)
[dict setObject:[NSNumber numberWithDouble:CMTimeGetSeconds(self.player.currentItem.duration)] forKey:MPMediaItemPropertyPlaybackDuration];//歌曲总时间设置
[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:dict];}
}
} - 有几个注意点是,每次你暂停时需要保存当前的音乐播放进度和锁屏下进度光标的速度设置为接近0的数(0.00001),以便下次恢复播放时锁屏下进度光标位置能正常。如下代码:NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithDictionary:[[MPNowPlayingInfoCenter defaultCenter] nowPlayingInfo]];
[dict setObject:[NSNumber numberWithDouble:CMTimeGetSeconds(CMTimeMakeWithSeconds((mSlider.value/timess)*timess, self.player.currentItem.currentTime.timescale))] forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime];
[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:dict];
swift锁屏播放,音乐进度更新,专辑,歌手名显示相关推荐
- Android 通知栏,锁屏播放音乐,类似音乐播放器
项目中需要用到播放音频的功能,想做一个类似酷狗.酷我这样的音频播放功能,在通知栏和锁屏时都可以操控音乐,开发中发现oppo reno手机在锁屏时不显示通知栏,研究了整整一天终于解决,特作记录,给遇到同 ...
- 后台或者锁屏播放音乐播放,
引入依赖的库文件: AudioToolBox.framework MediaPlayer.framework CoreMedia.framework AVFoundation.framework 2. ...
- 计算机休眠不播放音乐,电脑没有声音了播放音乐进度条还不会动是怎么回事求...
电脑没有声音了播放音乐进度条还不会动是怎么回事求以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 电脑没有声音了播放音乐进 ...
- 关于音乐播放器锁屏播放,后台播放,封面显示等
1. 如果应用需要后台播放:那么在appdelegate 中添加 [AVAudioSession *session = [AVAudioSession sharedInstance];[session ...
- 基于Qt的音乐播放器(一)添加音频文件,播放音乐,更新进度条
2020博客之星年度总评选进行中:请为74号的狗子投上宝贵的一票! 我的投票地址:点击为我投票 文章目录 1.实现音频文件对话框(QFileDialog类) 2.实现音乐播放(QMediaPlayer ...
- Android 原生锁屏页面音乐控制
Android5.0 提出了全新的MediaSession概念用于播放器与控制器之间进行交互,它取代之前的RemoteControlClient,并提供了更为灵活的客户端受控端模型. 但是MediaS ...
- android 壁纸切换广播,android仿音乐引用锁屏切换音乐歌曲壁纸
在许多音乐应用中,一般都会附带有锁屏时切换壁纸,解屏时还原的功能以及有开屏时的状态通知栏有歌曲的提示和播放进度等. 现在来说说怎么简单的就实现锁屏切换壁纸的功能. 首先,要先写好广播,用于监听锁屏和开 ...
- iOS 关于音乐锁屏控制音乐(锁屏信息设置)
appDelegate里面加入如下代码获取后台播放权限 - (void)setAudioBackstagePlay{AVAudioSession *audioSession = [AVAudioSes ...
- android微信电话锁屏,iPhone的微信更新锁屏下呼叫提醒,终于可以直接代替电话了...
原标题:iPhone的微信更新锁屏下呼叫提醒,终于可以直接代替电话了 微信在国内的普及程度不言而喻,特别是现在流量便宜和Wi-Fi热点众多,不少人都直接把微信的视频.语音通话代替了手机本身的通话功能, ...
最新文章
- 使用深度学习从视频中估计车辆的速度
- EXC_BAO_ACCESS引起的奔溃信息
- mysql不被其他ip访问_mysql数据库无法被其他ip访问的问题
- 使用 XMLBeans 进行编程 XMLBeans 如何引发数据绑定的巨大变革
- hive分隔符_HIVE-默认分隔符的(linux系统的特殊字符)查看,输入和修改
- Java 建模:UML 工作簿,第 1 部分
- 按照姓名升序排序的代码_好程序员Java培训分享Java集合的两种排序方法
- AOP之proceedingjoinpoint和joinpoint区别(获取各对象备忘)、动态代理机制及获取原理代理对象、获取Mybatis Mapper接口原始对象...
- MFC开发IM---MFC实现http协议传输图片和文本
- python websocket django vue_Django资料 Vue实现网页前端实时反馈输出信息
- Log4j 与 Logback的ConversionPattern对比
- 2007年网络防病毒评测_序
- 使用Dom4j对XML文档创建与解析
- CSS-文本垂直居中
- ui-sref与$state.go()的使用
- 莫队算法学习笔记(一)——普通莫队
- Tautology POJ - 3295
- [Database] 关系型数据库中的MVCC是什么?怎么理解?原理是什么?MySQL是如何实现的?
- 为什么你需要辞职了?——辞职的十大理由
- 【学习笔记】STC校验子格编码 syndrome-trellis code
热门文章
- C语言---找零问题------程序优化
- 1T数据到底有多大?
- Xposed框架初次见面-开发自己的Xposed插件
- 菱形杨辉三角形c语言,C++输出上三角/下三角/菱形/杨辉三角形(实现代码)
- 一文总结Keras的loss函数和metrics函数
- 超简单禁止迅雷下载!(分析+方法)
- EOS.CYBEX社区满分入围EOS超级节点候选人!
- SQL 汉字转拼音函数(转)+将表中汉字转拼音
- python 鼠标 自动点击_鼠标隔段时间自动点击屏幕
- 2023湖南省中职网络安全任务书