【问题标题】:Setting the AVAudioSession category in AppDelegate.m在 AppDelegate.m 中设置 AVAudioSession 类别
【发布时间】:2011-01-06 21:59:28
【问题描述】:

所以我不想问这个问题,但我花了相当多的时间搜索 Apple 的文档和 Google,但无济于事。我只是想在 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 {
}

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

【问题讨论】:

    标签: objective-c avaudiosession


    【解决方案1】:

    首先将UIBackgroundModes 键添加到您的Info.plist 文件中(如果您还没有这样做的话)。 更多信息here。

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多