我知道如何設置我的iOS應用程序,使其使用plist在後臺播放音頻(=在iOS設備上使用另一個應用程序時)。我們如何在iOS設備上運行時處理啓用/禁用背景音頻功能?
像一些應用程序: - BLOOM - 一些無線電玩家
提供了一個基本UISwitch啓用或禁用此行爲。
有關如何做到這一點的任何想法?
我知道如何設置我的iOS應用程序,使其使用plist在後臺播放音頻(=在iOS設備上使用另一個應用程序時)。我們如何在iOS設備上運行時處理啓用/禁用背景音頻功能?
像一些應用程序: - BLOOM - 一些無線電玩家
提供了一個基本UISwitch啓用或禁用此行爲。
有關如何做到這一點的任何想法?
在處理音頻播放代碼的主類中有一個類型爲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];
}
因此音頻停在應用進入後臺。
我會測試一下。但它不會迴應將啓用或禁用此背景功能的UISwitch。我的意思是:用戶希望將該應用用作背景音頻播放器,他啓用它。他不想要,他會禁用它,在這種情況下,當他切換到另一個應用程序時,不會在後臺播放更多音頻。 – gluon
上面的代碼是爲了演示如何以編程方式進行背景音頻播放。啓用或禁用使用UISwitch可以通過另一個BOOL iVar並有條件地編寫後臺任務代碼來實現。 –