zoukankan      html  css  js  c++  java
  • iOS开发--QQ音乐练习,后台播放和锁屏界面

    一.设置后台播放

    • 首先允许程序后台播放
    • 代码实现
       1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
       2     
       3     // 设置后台播放的代码,步骤
       4     // 1.获取音频的会话
       5     AVAudioSession *session = [AVAudioSession sharedInstance];
       6     // 2.设置后台播放类型
       7     [session setCategory:AVAudioSessionCategoryPlayback error:nil];
       8     // 3.激活会话
       9     [session setActive:YES error:nil];
      10     
      11     return YES;
      12 }

    二.锁屏界面

    • 适当的时机调用这个方法                                                                              
      #pragma mark - 设置锁屏界面的信息
      - (void)setupLockScreenInfo
      {
          // 1.获取当前正在播放的歌曲
          ChaosMusic *playingMusic = [ChaosMusicTool playingMusic];
          // 2.获取锁屏界面中心
          MPNowPlayingInfoCenter *playingCenter = [MPNowPlayingInfoCenter defaultCenter];
          // 3.设置展示的信息
          NSMutableDictionary *playingInfo = [NSMutableDictionary dictionary];
          
          playingInfo[MPMediaItemPropertyAlbumTitle] = playingMusic.name;
          playingInfo[MPMediaItemPropertyArtist] = playingMusic.singer;
          MPMediaItemArtwork *artwork = [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageNamed:playingMusic.icon]];
          playingInfo[MPMediaItemPropertyArtwork] = artwork;
          playingInfo[MPMediaItemPropertyArtist] = @(self.player.currentTime);
          
          playingCenter.nowPlayingInfo = playingInfo;
          // 4.让应用程序可以接受远程事件
          [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
      }
    • 实现了锁屏界面,没有实现监听远程事件的话,锁屏界面的下一首之类的按钮没有反应.实现下面的方法
       1 // 监听远程事件
       2 - (void)remoteControlReceivedWithEvent:(UIEvent *)event
       3 {
       4     switch (event.subtype) {
       5         case UIEventSubtypeRemoteControlPlay:
       6         case UIEventSubtypeRemoteControlPause:
       7             [self startOrPause:nil];
       8             break;
       9             
      10         case UIEventSubtypeRemoteControlNextTrack:
      11             [self nextMusic:nil];
      12             break;
      13             
      14         case UIEventSubtypeRemoteControlPreviousTrack:
      15             [self previousMusic:nil];
      16             break;
      17             
      18         default:
      19             break;
      20     }
      21 }
  • 相关阅读:
    Bit,Byte,Word,Dword,Qword
    One good turn deserves another
    IHttpModule & IHttpHandler
    畅想:哈夫曼树的应用
    The Controls collection cannot be modified because the control contains code blocks
    Talk O/RM (DAL) too ...
    实现对象集合枚举接口
    [ZT]实现创造生命的古老梦想——合成生物学的发展走向
    笔记本基础知识篇之DVI接口详解
    Analysis Services: write back
  • 原文地址:https://www.cnblogs.com/gchlcc/p/5582571.html
Copyright © 2011-2022 走看看