1、导入头文件
#import <AVFAudio/AVAudioSession.h>
2、在播放按钮的点击事件里面进行编辑
- (void)play:(UIButton *)button {
(这里是其他的播放逻辑代码...)
// 请求权限以在后台播放音频,并允许与其它应用音频混合
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{ // 只在app启动时设置(执行)一次
AVAudioSession *audioSession = [AVAudioSession sharedInstance]; // 获取音频会话单例对象
[audioSession setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil]; // 设置音频会话类别
/*
AVAudioSessionCategoryPlayback :表示 app 将播放音频
AVAudioSessionCategoryOptionMixWithOthers :这个选项表示允许与其他音频应用混合播放
error:nil :表示忽略任何可能出现的错误(通常应该是捕获并处理可能出现的错误,这里我们选择忽略)
*/
[audioSession setActive:YES error:nil]; // 激活音频会话(这里同样忽略错误)
});
}
3、点击项目文件,点击Signing & Capabilities,点击 + Capabilities,搜索并选择 Background Modes,然后在产生的 Background Modes 模块下面选择第一个 Audio, AirPlay, and Picture in Picture
4、现在点击运行,app就能正常实现后台播放音频了