• 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 }
  • 相关阅读:
    Android学习小Demo一个显示行线的自定义EditText
    Android中自定义checkbox样式
    android圆角View实现及不同版本这间的兼容
    android下大文件分割上传
    drwtsn32.exe 遇到问题须要关闭。我们对此引起的不便表示抱歉
    【分享】深入浅出WPF全系列教程及源码
    iOS国际化时遇到的错误:read failed: the data couldn't be read because it isn't in the correct format.
    void及void指针含义的深刻解析
    堆和栈的差别(转过无数次的文章)
    sizeof,终极无惑(上)
  • 原文地址:https://www.cnblogs.com/gchlcc/p/5582571.html
Copyright © 2020-2023  润新知