例如,如果我在潘多拉盒中開始播放歌曲,然後打開Safari瀏覽網頁,潘多拉歌曲將繼續播放。但是,如果我在潘多拉歌曲中創作歌曲,然後打開我的應用程序,它會殺死潘多拉歌曲。如何讓潘多拉在我的應用程序運行時繼續玩遊戲?在iPhone上,如何讓其他應用在應用運行時繼續在後臺運行?
回答
您需要告知iOS
系統它應該使用什麼行爲來集成這兩個音頻會話。默認情況下,它會在您使用音頻時取消背景音頻。但是這種行爲可以按照AVAudioSession docs here中的描述進行修改。
引述:
與音樂播放器工作
當您自己的聲音一起演奏從用戶的iPod庫音頻 (如iPod的庫訪問編程指南中所述),您必須爲您的音頻會話使用 所謂的可混合類別配置。 有兩種,可供選擇的方式來配置音頻會話 互溶:
使用AVAudioSessionCategoryAmbient(或等值 kAudioSessionCategory_AmbientSound)類,這始終是混合的。 使用混合的類別覆蓋屬性 kAudioSessionProperty_OverrideCategoryMixWithOthers,如
描述的「微調類別」,使原本nonmixable播放 類混合的。使用這些選項之一後,您的聲音將不會中斷音樂播放器 - 而且音樂播放器的聲音 也不會中斷您的播放。
爲什麼有你的應用程序可能會「殺」的背景應用兩方面的原因:
- 它開始發揮自身
- 您使用過多內存的音樂爲它繼續玩和OS關閉背景應用程序
沒有特殊的選項需要選擇;你只需要成爲一個「好公民」。
嗯。我的應用程序是一款遊戲,沒有音樂 - 因此我希望人們在玩我的遊戲時能夠從另一個應用程序播放音樂。基本上只是讓他們選擇自己的音樂。我懷疑我的遊戲使用太多的內存,因爲它很小。不過我的遊戲確實有聲音效果。這是不可能的,因爲我的遊戲應用程序至少有一個音效? – Ryan 2012-03-22 16:40:58
從這一點來看,無論您播放音樂還是「音效」都無關緊要。您使用設備的音頻輸出端口,並且由於您的應用程序處於前景,因此它獲得了獨佔權。所以它會在後臺靜音所有其他應用程序。如果你不想要這個或者以某種共享模式打開它(如果它存在,我不知道),你應該從你的應用中刪除所有音頻操作 – MrTJ 2012-03-22 17:37:12
據我所知,音樂有不同的「通道」和音效,所以請確保您以正確的方式播放效果。 – 2012-03-22 17:54:12
- 1. 如何讓流星手機應用繼續在後臺運行?
- 2. 如何讓應用程序在退出後繼續運行?
- 3. 如何讓我的應用在iPhone的後臺運行?
- 4. 如何讓應用程序在後臺運行?繼續收集數據?
- 5. iphone應用程序在後臺運行?
- 6. 如何在後臺運行其他功能時在後臺運行功能?
- 7. 如何繼續在後臺運行前臺服務也在android
- 8. 讓應用程序在前臺運行
- 9. 如何讓數字應用程序在後臺運行
- 10. 如何讓應用程序無限期地在後臺運行?
- 11. iPhone - 讓收音機在後臺運行
- 12. 當應用程序未運行時在後臺運行SyncAdapter
- 13. 在其他顯示器上運行控制檯應用程序
- 14. 如何在iphone中運行後臺應用程序?
- 15. 如何在Xcode在iPhone應用程序上運行codesign後運行腳本?
- 16. 在iPhone上查找後臺運行應用程序
- 17. iPhone上的多個GPS應用程序在後臺運行?
- 18. 如何在關閉JFrame時在後臺運行應用程序?
- 19. 在調用System.exit(0)後應用程序繼續運行 - Java
- 20. iPhone - 在應用程序在後臺運行時更改應用程序設置
- 21. iPhone應用程序在後臺運行時檢測WiFi網絡
- 22. 當iPhone應用程序在後臺運行時,AudioQueueStart失敗iOS4.0
- 23. Iphone:應用程序在後臺運行時會凍結嗎?
- 24. 在後臺運行音樂在xcode中運行應用程序
- 25. 在後臺運行應用程序IntentService
- 26. Android,在後臺運行應用程序
- 27. 在後臺運行android應用程序?
- 28. 在後臺運行應用程序android
- 29. 在後臺運行應用程序
- 30. WatchOS應用程序在後臺運行
你寫遊戲,不是嗎? 你使用什麼遊戲引擎? – 2012-03-22 16:50:03
是的。沒有引擎。普通的C++和opengl 1.1。定製引擎。 – Ryan 2012-03-22 16:51:07