OC-鎖屏播放

前言

我們在寫APP中經(jīng)常會遇到需要鎖屏播放的這種情況精偿,在這里,樓主就簡單的說說鎖屏播放是怎么實現(xiàn)的。

此篇文章為OC版本扎阶,Swift版本請移步這里:Swift版本

如何實現(xiàn)

打開后臺模式

在設(shè)置的Capabilities中選擇后臺模式的第一項洛姑,如下圖所示:


g

導(dǎo)入相應(yīng)的頭文件

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

播放音樂并設(shè)置相關(guān)信息

播放音樂并設(shè)置鎖屏需要顯示的相關(guān)信息

#pragma mark 播放音樂
- (void)playMusic
{
self.audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:[[NSBundle mainBundle]URLForResource:self.model.filename withExtension:nil] error:nil];
self.audioPlayer.delegate = self;

[self.audioPlayer prepareToPlay];

if (!self.audioPlayer.isPlaying) {
[self.audioPlayer play];
}
}

#pragma mark 設(shè)置鎖屏信息顯示
- (void)setLockScreenDisplay
{
NSMutableDictionary *info = [NSMutableDictionary dictionary];
[info setObject:self.model.name forKey:MPMediaItemPropertyTitle];//歌名
[info setObject:self.model.singer forKey:MPMediaItemPropertyArtist];//作者
//    [info setObject:self.model.filename forKey:MPMediaItemPropertyAlbumTitle];//專輯名
[info setObject:self.model.singer forKey:MPMediaItemPropertyAlbumArtist];//專輯作者
[info setObject:[[MPMediaItemArtwork alloc]initWithImage:[UIImage imageNamed:self.model.icon]] forKey:MPMediaItemPropertyArtwork];//顯示的圖片
[info setObject:[NSNumber numberWithDouble:self.audioPlayer.duration] forKey:MPMediaItemPropertyPlaybackDuration];//總時長
[info setObject:[NSNumber numberWithFloat:1.0] forKey:MPNowPlayingInfoPropertyPlaybackRate];//播放速率
[[MPNowPlayingInfoCenter defaultCenter] setNowPlayingInfo:info];
}
打開后臺播放
#pragma mark 后臺播放
- (void)playingBackground
{
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
[session setActive:YES error:nil];
}

打開和關(guān)閉遠程控制事件

viewWillAppear中打開接受遠程控制事件,在viewWillDisappear中關(guān)閉遠程控制事件,代碼如下:

- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self becomeFirstResponder];
[[UIApplication sharedApplication]beginReceivingRemoteControlEvents];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self resignFirstResponder];
[[UIApplication sharedApplication]endReceivingRemoteControlEvents];
}
設(shè)置鎖屏控制

設(shè)置鎖屏時,鎖屏界面的相關(guān)控制按鈕所應(yīng)該執(zhí)行的方法

#pragma mark 鎖屏控制
- (void)remoteControlReceivedWithEvent:(UIEvent *)event
{
switch (event.subtype) {
case UIEventSubtypeRemoteControlPlay://播放

break;
case UIEventSubtypeRemoteControlPause://暫停

break;
case UIEventSubtypeRemoteControlStop://停止
break;
case UIEventSubtypeRemoteControlTogglePlayPause://切換播放暫停(耳機線控)
break;
case UIEventSubtypeRemoteControlNextTrack://下一首

break;
case UIEventSubtypeRemoteControlPreviousTrack://上一首

break;
case UIEventSubtypeRemoteControlBeginSeekingBackward://開始快退
break;
case UIEventSubtypeRemoteControlEndSeekingBackward://結(jié)束快退
break;
case UIEventSubtypeRemoteControlBeginSeekingForward://開始快進
break;
case UIEventSubtypeRemoteControlEndSeekingForward://結(jié)束快進
break;
default:
break;
}
}

到這里為止上沐,鎖屏播放就完成了,Demo中附有完整的音樂播放器楞艾,Demo下載地址:Demo参咙。最后,希望這篇文章對各位看官們有所幫助硫眯。對支持小編的看官們表示感謝蕴侧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市舟铜,隨后出現(xiàn)的幾起案子戈盈,更是在濱河造成了極大的恐慌,老刑警劉巖谆刨,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件塘娶,死亡現(xiàn)場離奇詭異,居然都是意外死亡痊夭,警方通過查閱死者的電腦和手機刁岸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來她我,“玉大人虹曙,你說我怎么就攤上這事》撸” “怎么了酝碳?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長恨狈。 經(jīng)常有香客問我疏哗,道長,這世上最難降的妖魔是什么禾怠? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任返奉,我火速辦了婚禮贝搁,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘芽偏。我一直安慰自己雷逆,他們只是感情好,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布污尉。 她就那樣靜靜地躺著膀哲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪被碗。 梳的紋絲不亂的頭發(fā)上等太,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機與錄音蛮放,去河邊找鬼缩抡。 笑死,一個胖子當著我的面吹牛包颁,可吹牛的內(nèi)容都是我干的瞻想。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼娩嚼,長吁一口氣:“原來是場噩夢啊……” “哼蘑险!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起岳悟,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤佃迄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后贵少,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呵俏,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年滔灶,在試婚紗的時候發(fā)現(xiàn)自己被綠了普碎。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡录平,死狀恐怖麻车,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情斗这,我是刑警寧澤动猬,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站表箭,受9級特大地震影響赁咙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一序目、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧伯襟,春花似錦猿涨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至稽揭,卻和暖如春俺附,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背溪掀。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工事镣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人揪胃。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓璃哟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親喊递。 傳聞我的和親對象是個殘疾皇子随闪,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容