2012-03-22 135 views
1

例如,如果我在潘多拉盒中開始播放歌曲,然後打開Safari瀏覽網頁,潘多拉歌曲將繼續播放。但是,如果我在潘多拉歌曲中創作歌曲,然後打開我的應用程序,它會殺死潘多拉歌曲。如何讓潘多拉在我的應用程序運行時繼續玩遊戲?在iPhone上,如何讓其他應用在應用運行時繼續在後臺運行?

+0

你寫遊戲,不是嗎? 你使用什麼遊戲引擎? – 2012-03-22 16:50:03

+0

是的。沒有引擎。普通的C++和opengl 1.1。定製引擎。 – Ryan 2012-03-22 16:51:07

回答

3

您需要告知iOS系統它應該使用什麼行爲來集成這兩個音頻會話。默認情況下,它會在您使用音頻時取消背景音頻。但是這種行爲可以按照AVAudioSession docs here中的描述進行修改。

引述:

與音樂播放器工作

當您自己的聲音一起演奏從用戶的iPod庫音頻 (如iPod的庫訪問編程指南中所述),您必須爲您的音頻會話使用 所謂的可混合類別配置。 有兩種,可供選擇的方式來配置音頻會話 互溶:

使用AVAudioSessionCategoryAmbient(或等值 kAudioSessionCategory_AmbientSound)類,這始終是混合的。 使用混合的類別覆蓋屬性 kAudioSessionProperty_OverrideCategoryMixWithOthers,如

描述的「微調類別」,使原本nonmixable播放 類混合的。使用這些選項之一後,您的聲音將不會中斷音樂播放器 - 而且音樂播放器的聲音 也不會中斷您的播放。

2

爲什麼有你的應用程序可能會「殺」的背景應用兩方面的原因:

  1. 它開始發揮自身
  2. 您使用過多內存的音樂爲它繼續玩和OS關閉背景應用程序

沒有特殊的選項需要選擇;你只需要成爲一個「好公民」。

+0

嗯。我的應用程序是一款遊戲,沒有音樂 - 因此我希望人們在玩我的遊戲時能夠從另一個應用程序播放音樂。基本上只是讓他們選擇自己的音樂。我懷疑我的遊戲使用太多的內存,因爲它很小。不過我的遊戲確實有聲音效果。這是不可能的,因爲我的遊戲應用程序至少有一個音效? – Ryan 2012-03-22 16:40:58

+0

從這一點來看,無論您播放音樂還是「音效」都無關緊要。您使用設備的音頻輸出端口,並且由於您的應用程序處於前景,因此它獲得了獨佔權。所以它會在後臺靜音所有其他應用程序。如果你不想要這個或者以某種共享模式打開它(如果它存在,我不知道),你應該從你的應用中刪除所有音頻操作 – MrTJ 2012-03-22 17:37:12

+1

據我所知,音樂有不同的「通道」和音效,所以請確保您以正確的方式播放效果。 – 2012-03-22 17:54:12

相關問題