博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS后台播放背景音乐文件(转载)
阅读量:5912 次
发布时间:2019-06-19

本文共 2082 字,大约阅读时间需要 6 分钟。

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]; //播放 }

转载于:https://www.cnblogs.com/pengyingh/articles/2339446.html

你可能感兴趣的文章
使用filezilla连接树莓派失败
查看>>
[数分提高]2014-2015-2第5教学周第2次课讲义 3.2 微分中值定理
查看>>
Clr静态数据Table-Valued函数
查看>>
转:一个基于互联网医疗的创业公司,三年是一个收获
查看>>
How to effectively work with multiple files in Vim?
查看>>
Android 中文API (70) —— BluetoothDevice[蓝牙]
查看>>
不定宽高垂直居中分析
查看>>
ibatis中使用like模糊查询
查看>>
Scrum三头猪
查看>>
mysql之视图
查看>>
项目管理学习笔记之二.工作分解
查看>>
奇异值分解(We Recommend a Singular Value Decomposition)
查看>>
一个单元测试 学习 aysnc await
查看>>
Linux驱动总结3- unlocked_ioctl和堵塞(waitqueue)读写函数的实现 【转】
查看>>
iOS开发网络篇—HTTP协议
查看>>
jboss7 添加虚拟目录 上传文件路径
查看>>
在eclipse中建立lua开发环境
查看>>
CRT/LCD/VGA Information and Timing
查看>>
C# PPT 为形状设置三维效果
查看>>
Android DecorView浅析
查看>>