1. 我自己用的音乐播放器是自带的AVPlayer
    2. 导入头文件#import <MediaPlayer/MediaPlayer.h>
    3. 远程控制事件接收与处理
      - (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;
              }
          }
      }

    4. 传递信息到锁屏状态下- (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];

      }
      }
      }

    5. 有几个注意点是,每次你暂停时需要保存当前的音乐播放进度和锁屏下进度光标的速度设置为接近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锁屏播放,音乐进度更新,专辑,歌手名显示的更多相关文章

  1. android 播放音乐-进度条

    今天学渣研究了一下使用MediaPlayer播放音乐时加入进度条,进度条如今用的是android自带的seekbar,后期会跟换UI的,在之前可以播放音乐的基础上,如今加入的主要功能有两个: 1实时显 ...

  2. AVAudioPlayer的锁屏播放控制和锁屏播放信息显示

    在设置这个锁屏之前,首先得设置应用支持后台音乐播放,TAGETS->Info->Required background modes->App plays audio or strea ...

  3. IOS AudioServicesPlaySystemSound 后台锁屏播放

    AudioServicesPlaySystemSound 想在锁屏后台播放报警提示音. 添加了UIBackgroundModes,audio,官方审核不通过! IOS的闹钟是怎么实现的,锁屏不能播放声 ...

  4. Windows 聚焦(锁屏背景)不更新的解决方法

    在 Windows Store 搜索 Dynamic theme 安装后可对桌面背景.锁屏界面等进行设置,非常好用!

  5. 轻仿QQ音乐之音频歌词播放、锁屏歌词-b

    先上效果图 歌词播放界面 音乐播放界面 锁屏歌词界面 一. 项目概述 前面内容实在是太基础..只想看知识点的同学可以直接跳到第三部分的干货 项目播放的mp3文件及lrc文件均来自QQ音乐 本文主要主要 ...

  6. iOS8 用AVAudioPlayer播放音乐(Swift)

    AVAudioPlayer 类提供了播放音频文件的功能,在本次教程中,我们将对一个音乐文件进行播放暂停和停止操作,此外还会显示标题和播放时间.本次教程使用iOS8和Xcod6.3.1 打开Xcode创 ...

  7. Delphi IOS MusicPlayer 锁屏运行学习

    [weak] FMusicPlayer: TMusicPlayer; [weak]修饰, 编译器在处理这个变量的时候不会调用该变量内容的__ObjAddRef和__ObjRelease., proce ...

  8. Delphi IOS 蓝牙锁屏后台运行

    Delphi IOS 后台运行 同样的程序,编译成android,锁屏后继续运行正常,蓝牙通讯正常,但在IOS下锁屏后程序的蓝牙就中断通讯了? IOS的机制就是这样,锁屏就关闭了. 音乐播放器是怎么做 ...

  9. iOS 音乐播放器之锁屏效果+歌词解析

    概述 功能描述:锁屏歌曲信息.控制台远程控制音乐播放:暂停/播放.上一首/下一首.快进/快退.列表菜单弹框和拖拽控制台的进度条调节进度(结合了QQ音乐和网易云音乐在锁屏状态下的效果).歌词解析并随音乐 ...

随机推荐

  1. SVN trunk、branch、tag的用法

    Subversion有一个很标准的目录结构,是这样的.比如项目是proj,svn地址为svn://proj/,那么标准的svn布局是svn://proj/|+-trunk+-branches+-tag ...

  2. bash及其特性(笔记)

    bash及其特性:shell: 外壳GUI:Gnome, KDE, XfceCLI: sh, csh, ksh, bash, tcsh, zsh root, student程序:进程 进程:在每个进程 ...

  3. 【转】RTSP流理解

    rtsp是使用udp还是tcp,是跟服务器有关,服务器那边说使用udp,那就使用udp,服务器说使用tcp那就使用tcp rtsp客户端的创建: 1.建立TCP socket,绑定服务器ip,用来传送 ...

  4. Unity 使用实体类

    故事的由来: 正在开发打飞机的游戏,遇到这样的数据结构,游戏有很多关卡-> 每个关卡有几波怪物->每一波里面有怪物和数量 [] 关卡 { []波{ {怪物,数量},{怪物,数量},{怪物, ...

  5. ff与ie 的关于js兼容性

    FF的FIREBUG,不仅能测试JS还能检查CSS错误,是一般常用的.但它主要检查FF方面的错误,对IE就无能为力了.要测试IE,就用ieTester,它可以测试IE几乎所有版本(1.0恐怕也用不到测 ...

  6. NTP-ntpdate:no server suitable for synchronization found

    NTP-ntpdate 问题处理 解决ntp的错误 no server suitable for synchronization found 当用ntpdate -d 来查询时会发现导致 no ser ...

  7. ASP.net+SQL server2008简单的数据库增删改查 VS2012

    工具:VS2012 数据库:SQL server 简单说明:根据老师上课给的代码,进行了简单的改正适用于VS2012环境,包括注册.登录.查询.修改.删除功能,多数参考了网上的代码 百度云源代码连接t ...

  8. Android使用NumberPicker控件实现选择城市,生日

    本人菜鸟一枚,第一次写技术博客,有点小紧张,加上代码很乱,求不喷. 先放效果图: 界面就这么简单. 然后放上代码: package com.example.dialog; import java.ut ...

  9. achartengine 实现平行线 动态数据 x轴动态移动

    achartengine做平行线的时候经常会遇到: java.lang.IndexOutOfBoundsException: Invalid index 1, size is 1 at java.ut ...

  10. (zz)Lambda 表达式(C# 编程指南)

    https://msdn.microsoft.com/zh-cn/library/bb397687.aspx Lambda 表达式是一种可用于创建委托或表达式目录树类型的匿名函数.通过使用 lambd ...