[后台]iOS后台播放背景音乐文件

iOS从4.0之后支持后台播放声音了。下面是实现声音文件播放,并且用户关闭屏幕之后仍然能够播放声音文件。具体的实现方法如下:

在plist文件中加入下面的字段:

声明内容如下:

Info.plist中添加UIBackgroundModes键值,它包含一个或多个string的值,包括

audio:在后台提供声音播放功能,包括音频流和播放视频时的声音

location:在后台可以保持用户的位置信息

voip:在后台使用VOIP功能

 

在程序中添加:

AVAudioSession *session = [AVAudioSession sharedInstance];  
    [session setActive:YES error:nil];  
    [session setCategory:AVAudioSessionCategoryPlayback error:nil]; 

声明声音在后台运行。最后运行程序,关闭程序,声音则在后台成功播放。


1. //后台播放
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setActive:YES error:nil];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];

2. 让后台可以处理多媒体的事件

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

Remote-control events originate as commands issued by headsets and external accessories that are intended to control multimedia presented by an application. To stop the reception of remote-control events, you must call endReceivingRemoteControlEvents.

3.系统进入后台运行时,让程序可以运行一段时间。使用此方法争取一定的时间,在程序进入后台后处理一些事情。
- (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void(^)(void))handler
This method lets your application continue to run for a period of time after it transitions to the background.
your application could call this method to ensure that had enough time to transfer an important file to a remote server or at least attempt to make the transfer and note any errors. You should not use this method simply to keep your application running after it moves to the background.



2. 背景音乐播放,支持mp3格式
需要先导入框架及代码中#import <AVFoundation/AVFoundation.h>

复制代码
NSString *musicPath = [[NSBundle mainBundle] pathForResource:@"backgrounmusic" ofType:@"mp3"];
NSURL *url = [[NSURL alloc] initFileURLWithPath:musicPath];

AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
// 创建播放器
self.myBackMusic = player; //赋值给自己定义的类变量
[url release];
[player release];

[myBackMusic prepareToPlay];
[myBackMusic setVolume:1];
myBackMusic.numberOfLoops = -1; //设置音乐播放次数  -1为一直循环
if(mainMusicStatus)
{
    [myBackMusic play]; //播放
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值