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

本文共 2022 字,大约阅读时间需要 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]; //播放 }

转载地址:http://zgmcx.baihongyu.com/

你可能感兴趣的文章
第一次作业 4班卢炳武
查看>>
抽象类的调用
查看>>
使用硬盘,安装双系统,Win7+CentOS
查看>>
Javascript学习总结
查看>>
php 用正则替换中文字符一系列问题解决
查看>>
ActiveMQ应用笔记一:基本概念&安装
查看>>
大话数据结构之四(串)
查看>>
加热炉简是新来的整个系统的板
查看>>
Mockito使用注意事项
查看>>
[LeetCode] Palindrome Linked List 回文链表
查看>>
UVA - 825Walking on the Safe Side(dp)
查看>>
评论:人才流失强力折射出现实畸形人才观
查看>>
git服务器gitlab之搭建和使用--灰常好的git服务器【转】
查看>>
基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否...
查看>>
虚拟运营商10月或大面积放号 哭穷背后仍有赢家
查看>>
分布式光伏发电建设中的逆变器及其选型
查看>>
UML中关联,组合与聚合等关系的辨析
查看>>
《大数据管理概论》一3.2 大数据存储与管理方法
查看>>
ios的google解析XML框架GDataXML的配置及使用
查看>>
netty-当一个客户端连接到来的时候发生了什么
查看>>