我们如何在 iOS 设备上在运行时处理启用/禁用背景音频功能?

glu*_*uon 0 audio background runtime plist ios

我知道如何使用 plist 设置我的 iOS 应用程序以使其在后台播放音频(= 在 iOS 设备上使用另一个应用程序时)。

一些应用程序,如: - BLOOM - 一些广播播放器

提供了一个基本的 UISwitch 来启用或禁用此行为。

关于如何做到这一点的任何想法?

mit*_*jha 5

在处理音频播放代码的主类中有一个 UIBackgroundTaskIdentifier 类型的 iVar,在启动音频播放器之前使用 beginBackgroundTaskWithExpirationHandler.... 方法初始化它,并在音频播放器完成时使用 endBackgroundTask。

代码:

@inerface AudioPlayerController : NSObject
{
    UIBackgroundTaskIdentifier bgTaskID;
}
@end

@implementation AudioPlayerController

- (void) startPlayer
{

    bgTaskID = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];

   // Write code to start the audio player
}

// Call this when your program receives message of audio playing complete

- (void) audioPlayComplete
{

    // Do the audio playing finish

    if (bgTaskID != UIBackgroundTaskInvalid)
      [[UIApplication sharedApplication] endBackgroundTask:bgTaskID];
} 

@end
Run Code Online (Sandbox Code Playgroud)