溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

iOS音樂后臺播放及鎖屏信息顯示

發(fā)布時間:2020-09-28 13:00:03 來源:腳本之家 閱讀:206 作者:Zsk_Zane 欄目:移動開發(fā)

本文實例為大家分享了iOS實現(xiàn)音樂的后臺播放,以及播放時,可以控制其暫停,下一首等操作,以及鎖屏圖片歌曲名等的顯示

此實例需要真機調(diào)試,效果圖如下:

iOS音樂后臺播放及鎖屏信息顯示

工程下載:github工程下載

實現(xiàn)步驟:

1、首先修改info.plist

iOS音樂后臺播放及鎖屏信息顯示

2、其次引入兩個需要的框架

#import <AVFoundation/AVFoundation.h>
#import <MediaPlayer/MediaPlayer.h>

3、設(shè)置播放器及后臺播放

- (void)viewDidLoad {
  [super viewDidLoad];
//  設(shè)置后臺播放
  [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];

//  設(shè)置播放器
  NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"那些花兒" ofType:@"mp3"] ];
  _player = [[AVPlayer alloc] initWithURL:url];
  [_player play];
  _isPlayingNow = YES;

  //后臺播放顯示信息設(shè)置
  [self setPlayingInfo];
}

#pragma mark - 接收方法的設(shè)置
- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
  if (event.type == UIEventTypeRemoteControl) { //判斷是否為遠(yuǎn)程控制
    switch (event.subtype) {
      case UIEventSubtypeRemoteControlPlay:
        if (!_isPlayingNow) {
          [_player play];
        }
        _isPlayingNow = !_isPlayingNow;
        break;
      case UIEventSubtypeRemoteControlPause:
        if (_isPlayingNow) {
          [_player pause];
        }
        _isPlayingNow = !_isPlayingNow;
        break;
      case UIEventSubtypeRemoteControlNextTrack:
        NSLog(@"下一首");
        break;
      case UIEventSubtypeRemoteControlPreviousTrack:
        NSLog(@"上一首 ");
        break;
      default:
        break;
    }
  }
}

4、設(shè)置后臺播放時顯示的東西,例如歌曲名字,圖片等

- (void)setPlayingInfo {
//  <MediaPlayer/MediaPlayer.h>
  MPMediaItemArtwork *artWork = [[MPMediaItemArtwork alloc] initWithImage:[UIImage imageNamed:@"pushu.jpg"]];

  NSDictionary *dic = @{MPMediaItemPropertyTitle:@"那些花兒",
             MPMediaItemPropertyArtist:@"樸樹",
             MPMediaItemPropertyArtwork:artWork
             };
  [[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:dic];
}

5、遠(yuǎn)程控制設(shè)置

- (void)viewDidAppear:(BOOL)animated {
//  接受遠(yuǎn)程控制
  [self becomeFirstResponder];
  [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
}

- (void)viewDidDisappear:(BOOL)animated {
//  取消遠(yuǎn)程控制
  [self resignFirstResponder];
  [[UIApplication sharedApplication] endReceivingRemoteControlEvents];
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI