【发布时间】:2012-05-17 06:43:31
【问题描述】:
我知道如何使用 plist 设置我的 iOS 应用程序以使其在后台播放音频(= 在 iOS 设备上使用另一个应用程序时)。
一些应用程序,例如: - 绽放 - 一些电台播放器
提供一个基本的 UISwitch 来启用或禁用此行为。
关于如何做到这一点的任何想法?
【问题讨论】:
标签: ios audio background runtime plist
我知道如何使用 plist 设置我的 iOS 应用程序以使其在后台播放音频(= 在 iOS 设备上使用另一个应用程序时)。
一些应用程序,例如: - 绽放 - 一些电台播放器
提供一个基本的 UISwitch 来启用或禁用此行为。
关于如何做到这一点的任何想法?
【问题讨论】:
标签: ios audio background runtime plist
在处理音频播放代码的主类中有一个 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
【讨论】:
在您的 AppDeletate 中:
- (void)applicationDidEnterBackground:(UIApplication *)application {
[[YouPlayerClass sharedInstance] stop];
}
因此音频在应用程序进入后台时停止。
【讨论】: