iOS音樂(lè)后臺(tái)播放及鎖屏信息顯示
本文實(shí)例為大家分享了iOS實(shí)現(xiàn)音樂(lè)的后臺(tái)播放,以及播放時(shí),可以控制其暫停,下一首等操作,以及鎖屏圖片歌曲名等的顯示
此實(shí)例需要真機(jī)調(diào)試,效果圖如下:

工程下載:github工程下載
實(shí)現(xiàn)步驟:
1、首先修改info.plist

2、其次引入兩個(gè)需要的框架
#import <AVFoundation/AVFoundation.h> #import <MediaPlayer/MediaPlayer.h>
3、設(shè)置播放器及后臺(tái)播放
- (void)viewDidLoad {
[super viewDidLoad];
// 設(shè)置后臺(tái)播放
[[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;
//后臺(tái)播放顯示信息設(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è)置后臺(tái)播放時(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];
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Flutter Widgets MediaQuery控件屏幕信息適配
這篇文章主要為大家介紹了Flutter Widgets 之 MediaQuery控件獲取屏幕信息和屏幕適配示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
使用ARM匯編破解iOS程序基礎(chǔ)知識(shí)分享
最近對(duì)iOS逆向工程很感興趣。但查到的資料中都涉及到有ARM匯編,但都只是很泛地用到,并沒(méi)有對(duì)iOS上的ARM匯編進(jìn)行比較詳細(xì)的講解。因此,經(jīng)過(guò)一系列的學(xué)習(xí)對(duì)iOS下的ARM有了一定的理解。在此打算用幾篇文字記錄下來(lái), 限于本人水平有限,如有錯(cuò)誤請(qǐng)不吝賜教。2015-11-11
詳解iOS游戲開(kāi)發(fā)中Cocos2D的坐標(biāo)位置關(guān)系
這篇文章主要介紹了iOS游戲開(kāi)發(fā)中Cocos2D的坐標(biāo)位置關(guān)系,Cocos2D是專門用來(lái)開(kāi)發(fā)iOS游戲的開(kāi)源框架,文中示例代碼采用Objective-C語(yǔ)言,需要的朋友可以參考下2016-02-02
iOS實(shí)現(xiàn)換膚功能的簡(jiǎn)單處理框架(附源碼)
這篇文章主要給大家介紹了關(guān)于iOS實(shí)現(xiàn)換膚功能的簡(jiǎn)單處理框架,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02

