9

我们正在为 iPad(仅)创建一个音频应用程序,用于现场表演。该设备将直接连接到控制台。因此,您在现场表演中最不想要的就是让设备突然发出意外的警报或提醒。

通过对 Apple SDK 的研究,您似乎可以屏蔽除日历和闹钟(以及 iPhone 上的通话)之外的所有内容。

也就是说,有谁知道如何告诉设备“当我们处于‘直播’模式时,不允许任何操作系统通知”?

如果没有,我们至少可以查询它们是否已打开以便我们可以警告用户吗?

Jailbeaking 不是一种选择,因为我们想通过 App Store 出售它。

更新

另一种选择是允许常规警报等仍然通过 iPad 的扬声器播放,但我们通过底座连接器中的线路输出发送声音

当然,我们总是可以为此开发自己的硬件,但我们正在尝试尽可能多地利用设备的内置功能。

4

3 回答 3

1

它可能会使您的应用程序不符合 App Store 分发的条件,但显然有些人已经使用了一个私有 API 来执行此操作。看:

有些人报告说,某些 API 调用具有接管所有声音输出的副产品。参见iOS 5 Audio Alarms Don't sound without kAudioSessionProperty_OverrideCategoryMixWithOthers On示例。

最安全的选择可能是在应用打开时提示用户更改设置。

于 2012-05-04T02:42:20.037 回答
0

注意:我现在没有 iPad,但我认为它与我的 iPod 具有相同的选项。 编辑:不,它没有。

仅限 iPod:在“设置”=>“声音”中,您可以将“铃声和警报”音量一直向下拖动。当这个音量滑块一直向下时,我的 iPod 根本不会发出任何噪音,除了我打开的程序发出的噪音。

iPod 设置的屏幕截图

iPad 似乎不像 iPod 那样允许单独控制系统声音和程序声音的音量。

iPad设置照片

于 2012-05-01T19:02:59.257 回答
0

我实际上并没有尝试过,但在快速谷歌搜索后,我发现AVAudioSession类参考说设置模式AVAudioSessionCategoryRecord可能会达到你想要的效果。

关于的注释AVAudioSessionCategoryPlayAndRecord说:

如果您想确保在您的应用程序录制时不会播放诸如消息警报之类的声音,请改用该AVAudioSessionCategoryRecord类别。

http://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/Reference/Reference.html#//apple_ref/c/data/AVAudioSessionCategoryRecord

(也可以使用 C API:http: //developer.apple.com/library/ios/#documentation/AudioToolbox/Reference/AudioSessionServicesReference/Reference/reference.html#//apple_ref/doc/c_ref/kAudioSessionCategory_PlayAndRecord

于 2012-05-02T07:41:02.127 回答