2012-03-22 132 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

相关问题