0

所以我不想问这个问题,但我花了相当多的时间搜索苹果的文档和谷歌,但无济于事。我只是想在 applicationDidFinishLaunching 时为我的应用设置一次 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 {
}

使用此代码,只要我按下主页按钮,音频就会淡出,将应用程序置于后台。非常感谢任何帮助,我希望对于以前做过此操作的任何人来说,这都是一种快速修复类型的答案。

4

2 回答 2

2

首先将UIBackgroundModes密钥添加到您的 Info.plist 文件中(如果您尚未完成)。更多信息在这里

如果您已经这样做了,您使用哪个框架来播放您的媒体?

于 2011-01-18T16:32:23.030 回答
1

感谢艾琳的帮助。您的回答非常正确,除了我只是想提供它为我工作所必需的步骤。我阅读了您发布的苹果文档,出于某种原因,它遗漏了这些重要细节:

  1. 在 .plist 文件中添加 UIBackgroundModes 键时,必须将其设为数组。
  2. 数组第 0 项的值应该是音频。

当然,您的应用程序还应该结合设置此键来设置其音频会话类别。

于 2011-01-30T08:33:39.123 回答