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

时间:2012-05-08 18:37:55

标签: ios audio background runtime plist

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

一些应用程序如: - 布卢姆 - 一些电台播放器

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

关于如何做到的任何想法?

2 个答案:

答案 0 :(得分:4)

在处理音频播放代码的主类中有一个类型为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

答案 1 :(得分:0)

在AppDeletate中:

- (void)applicationDidEnterBackground:(UIApplication *)application {
    [[YouPlayerClass sharedInstance] stop];
}

因此音频会在app进入背景时停止。