我正在寫一個iPhone應用程序,通過定時器定期播放聲音。這款應用程序的第一個版本在音量最小化時播放音頻,或者當屏幕變爲空白時播放音頻,但是在添加一些UI後,它看起來已停止播放。我不知道爲什麼,甚至如何診斷(取消UI代碼並不能解決問題)。iOS 7:音頻不在背景中播放
我設置背景模式在Info.plist文件:(「應用程序播放音頻或通過Airplay的流音頻/視頻」)和我也有我的應用程序委託執行以下操作:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
NSError *setCategoryErr = nil;
NSError *activationErr = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback
error:&setCategoryErr];
[[AVAudioSession sharedInstance] setActive:YES
error:&activationErr];
return YES;
}
在我ViewDidLayoutSubViews方法,我初始化AVPLayer正是如此:
self.fAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:soundFileURL error:nil];
self.fAudioPlayer.numberOfLoops = 0;
[self.fAudioPlayer setVolume:volume];
[self.fVolumeLevelSlider setValue:volume];
哪裏fAudioPlayer的類型是AVAudioPlayer的。當我的計時器被擊中,我玩的是音頻這樣的:
self.fBGTaskID = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];
[self.fAudioPlayer play];
我仍然會通過我的變化,看看有什麼,如果有的話,我已經把中可能會導致聲音停止在後臺播放從一個應用版本到下一個應用版本。有沒有人在這裏看到任何可能是錯誤的東西?
你如何在背景上運行計時器? –