所以我不想问这个问题,但是我花了很多时间搜索Apple的文档和谷歌没有用。我只是尝试在appDidFinishLaunching时为我的app ONCE设置AVAudioSession类别。我有一个播放音频流的应用程序,我希望它在应用程序进入后台时继续播放,所以我正在尝试使用播放类别。这是我的AppDelegate.m代码:
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
// Set AudioSession
NSError *sessionError = nil;
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&sessionError];
[[AVAudioSession sharedInstance] setActive:YES error:&sessionError];
[[AVAudioSession sharedInstance] setDelegate:self];
// create window and set up navigation controller
[window addSubview:myNavController.view];
[window makeKeyAndVisible];
}
# pragma mark -
# pragma mark AVAudioSession Delegate Methods
- (void)beginInterruption {
}
- (void)endInterruption {
}
- (void)endInterruptionWithFlags:(NSUInteger)flags {
}
- (void)inputIsAvailableChanged:(BOOL)isInputAvailable {
}
使用此代码,只要我按下主页按钮,音频就会淡出 应用程序在后台。非常感谢任何帮助,我希望如此 对于之前完成此操作的人来说,它是一种快速修复的答案。
答案 0 :(得分:2)
首先将UIBackgroundModes
密钥添加到Info.plist文件中(如果尚未添加)。
更多信息here。
如果您已经这样做了,您使用哪个框架来播放媒体?
答案 1 :(得分:1)
感谢艾琳的帮助。除了我只是想提供它为我工作所必需的步骤之外,你的答案非常正确。我阅读了您发布的苹果文档,并出于某种原因将这些重要细节遗漏了:
当然,您的应用还应该设置其音频会话类别并设置此键。