使用audio的背景和前景应用程序

我做了一些初步testing,并有一个好主意,答案是否定的。 但只需要确认:背景和前景应用程序可以共享audio播放设备? (后台应用程序将是我的。前台应用程序将来自第三方)

这是可能的,这是如何:

  1. 确保应用程序继续播放audio时留在后台这样做:

    a)将以下内容添加到您的Info plist文件中:

    “所需的背景模式”“项目0” – >“应用程序播放audio”

    b)调用setCategory:error:对于你的app的AVAudioSession:

    NSError * setCategoryError = nil;

    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&setCategoryError];

  2. 通过调用AudioSessionSetProperty(),使您的audio与来自其他应用程序的audio混合:

    OSStatus propertySetError = 0;

    UInt32 allowMixing = true;

    propertySetError = AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers,sizeof(allowMixing),&allowMixing);

您需要链接AVFoundation和AudioToolbox框架的代码。

从技术上讲,这是可能的。 当后台应用程序正在播放音乐时,前台应用程序仍然可以播放声音效果(例如“音乐”应用程序正在播放音乐,同时听到前台播放的游戏的声音效果)。 因此,您可以声明前台应用程序播放的音乐作为音效,而另一个应用程序在后台播放音乐。 但是,如果你无法控制前台应用程序,让他们播放他们的音乐作为一个音效,比没有办法。

我也怀疑一个声音连续音乐的应用程序将通过苹果审查过程。