当我的应用处于前台和后台时,我必须提供音频反馈。但是,当应用程序进入后台时,听不到音频反馈。在info.plist中,我已将背景模式设置为App播放音频或使用AirPlay传输音频/视频并使用以下内容,但当应用程序进入后台并且未听到音频时,不会调用audioPlayerDidFinishPlaying委托。
AVAudioPlayer *sound = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&err];
sound.delegate = self;
///Fixed the issue No audible feedback when main audio is silent
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive: YES error: nil];
// This is necessary if you want to play a sequence of songs, otherwise your app will be
// killed after the first one finishes.
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[soundQueue addObject:sound];
答案 0 :(得分:1)
您需要在plist文件中进行一些更改。
1)将所需的背景模式设置为App播放音频
2)设置应用程序不在后台运行到YES。
NSError *setCategoryErr = nil;
NSError *activationErr = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr];
[[AVAudioSession sharedInstance] setActive:YES error:&activationErr];
然后,您需要在AppDelegate中编写这么多代码
现在,您可以在手机屏幕锁定或后台轻松运行音频。
对我来说很好。 :)
有关详情,请参阅Playing Audio in background mode和Audio Session Programming Guide