使用 AVAudioPlayer iOS 9 无法在后台播放音频
Posted
技术标签:
【中文标题】使用 AVAudioPlayer iOS 9 无法在后台播放音频【英文标题】:Audio not playing in background using AVAudioPlayer iOS 9 【发布时间】:2017-08-04 07:34:00 【问题描述】:在前台播放时,使用 AVAudioPlayer ios 9 不会在后台播放音频。
我已经在 Info.plist 中设置了必需的背景模式“应用使用 AirPlay 播放音频或流式传输音频/视频”
我还在 Capabilities
中检查了 Audio, Background fetch使用代码:
@property (nonatomic, strong) AVAudioPlayer *ringtonePlayer;
NSString *ringtonePath = [[NSBundle mainBundle] pathForResource:@"incoming" ofType:@"wav"];
if ([ringtonePath length] <= 0)
NSLog(@"Can't find incoming sound file");
return;
self.ringtonePlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:ringtonePath] error:nil];
self.ringtonePlayer.delegate = self;
self.ringtonePlayer.numberOfLoops = -1;
NSError *error = nil;
if (![[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback
error:&error])
NSLog(@"Unable to reroute audio: %@", [error localizedDescription]);
else
[[AVAudioSession sharedInstance] setActive:YES error:&error];
self.ringtonePlayer.volume = 1.0f;
[self.ringtonePlayer play];
请帮忙,提前谢谢。
【问题讨论】:
【参考方案1】:我使用以下代码在后台播放,不需要修改info.plist文件。
func setupPlayBackground()
do
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
try AVAudioSession.sharedInstance().setActive(true)
catch let error
print(error.localizedDescription)
【讨论】:
以上是关于使用 AVAudioPlayer iOS 9 无法在后台播放音频的主要内容,如果未能解决你的问题,请参考以下文章
iOS 5.0 AVAudioPlayer 加载音频剪辑时出错:操作无法完成。 (OSStatus 错误 -50。)
AVAudioPlayer 后台任务无法在 iOS 5.0.1 设备上运行,但在 iOS 5 模拟器上运行