2014-07-22 49 views
0

在我的應用程序中,我每8秒在後臺運行一個定時器來播放自定義聲音,但它可以正常工作,但稍後它會停止播放,那麼如何在後臺連續播放聲音? 目前我使用下面的代碼在後臺播放聲音我將在後臺運行計時器多久?

 SystemSoundID soundID; 
     AudioServicesCreateSystemSoundID((__bridge CFURLRef)filePath, &soundID); 
     AudioServicesPlaySystemSound(soundID); 

讓我知道了很好的解決了在後臺繼續播放聲音

回答

0

簡短的回答:您的應用程序是簡單地暫停。

長答案:您缺少背景知識實現的關鍵部分。

  1. 你需要告訴你是一個音頻應用的iOS和暫停時,您所請求額外的週期。
  2. UIBackgroundModes是有待批准

documentation

背景模式爲應用UIBackgroundModes值= audio

該應用程序播放的音頻內容給用戶或記錄音頻,而在後臺。 (此內容包括流式音頻或使用AirPlay的視頻內容。)

如果應用程序不屬於任何下面的類別,那麼你唯一的選擇延長backgrounding超越典型秒是調用-beginBackgroundTaskWithName:expirationHandler:。您可能會在秒內暫停。

  • 音頻
  • 位置
  • VOIP
  • 報攤內容
  • 外部附件
  • 藍牙中央&藍牙周
  • 遠程通知