您的位置:首页 > 移动开发 > IOS开发

ios後臺播放音樂

2015-07-16 11:54 603 查看
1、首先在didFinishLaunchingWithOptions加如下代碼:

//后台播放音频设置

AVAudioSession *session = [AVAudioSession sharedInstance];

[session setActive:YES error:nil];

[session setCategory:AVAudioSessionCategoryPlayback error:nil];

//让app支持接受远程控制事件

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

加了AVAudioSession在後臺的時候會上一首、暫停、下一首的一排控件出現。

2、在Supporting Files的info.plist 的required background modes選項選擇App plays audio。

3、上面設置完了就可以後臺播放,要控制上一首什麼的畫需要在didFinishLaunchingWithOptions設置:

//让app支持接受远程控制事件

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

然後再需要控制的View,的viewDidLoad和dealloc分別設置:

[self becomeFirstResponder];

[self resignFirstResponder];

在加上:

-(BOOL)canBecomeFirstResponder

{

returnYES;

}

- (void) remoteControlReceivedWithEvent: (UIEvent *) receivedEvent {

if (receivedEvent.type == UIEventTypeRemoteControl) {

switch (receivedEvent.subtype) {

case UIEventSubtypeRemoteControlPause:

{

//暫停

}

break;

case UIEventSubtypeRemoteControlPlay:

{

//播放

}

break;

case UIEventSubtypeRemoteControlPreviousTrack:

{

//上一首

}

break;

case UIEventSubtypeRemoteControlNextTrack:

{

//下一首

}

break;

default:

break;

}

}

}

這樣就可以控制音樂的上一首、下一首。暫停等操作了。

4、為了後臺控制畫面漂亮一點,可以加藝術家、歌名、照片等。需要導入MediaPlayer.framework,在該view加入頭文件,增加設置方法。

#import <MediaPlayer/MPNowPlayingInfoCenter.h>

#import <MediaPlayer/MPMediaItem.h>

-(void)configPlayingInfo

{

if(NSClassFromString(@"MPNowPlayingInfoCenter")){

NSMutableDictionary *dict=[[NSMutableDictionary alloc]init];

[dict setObject:@“愛你一萬年” forKey:MPMediaItemPropertyTitle];

[dict setObject:@“劉德華” forKey:MPMediaItemPropertyArtist]

MPMediaItemArtwork *albumArt = [ [MPMediaItemArtwork alloc] initWithImage: [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url]]]];

[dict setObject: albumArt forKey:MPMediaItemPropertyArtwork ];

[[MPNowPlayingInfoCenter defaultCenter]setNowPlayingInfo:dict];

}

}

5、這樣就是一個像樣的播放器了,但是播放網絡歌曲,在後臺切換,老是會閃一下,網上說是音樂停止播放,程序會suspend,

要通过申请后台taskID达到后台切换播放文件,但是試了好像沒效果,後來在每次音樂play的適合都調一下configPlayingInfo,就不閃了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: