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 }

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM