如何暂停 iPad 上的所有声音通知?
Posted
技术标签:
【中文标题】如何暂停 iPad 上的所有声音通知?【英文标题】:How can I suspend all audible notifications on the iPad? 【发布时间】:2012-05-01 01:44:33 【问题描述】:我们正在为 iPad 创建一个音频应用程序(仅限),用于现场表演。该设备将直接连接到控制台。因此,在现场表演期间,您最不希望的就是让设备突然发出意外警报或提醒。
通过对 Apple SDK 的研究,您似乎可以屏蔽除日历和闹钟(以及 iPhone 上的电话)之外的所有内容。
也就是说,有谁知道如何告诉设备“当我们处于‘On Air’模式时,不允许任何操作系统通知”?
如果没有,我们至少可以查询它们是否已打开,以便我们可以警告用户吗?
Jailbeaking 不是一个选项,因为我们想通过 App Store 出售它。
更新
另一种选择是允许常规警报等仍然通过 iPad 的扬声器播放,但我们通过扩展坞连接器中的线路输出发送我们的声音。
当然,我们总是可以为此开发自己的硬件,但我们正在尝试尽可能多地利用设备的内置功能。
【问题讨论】:
【参考方案1】:这可能会使您的应用不符合 App Store 分发的条件,但显然有一个私有 API 可供某些人执行此操作。见:
How to disable ios System Sounds Mute/Silence an iOS device programmatically?有些人报告说,某些 API 调用具有接管所有声音输出的副产品。一个例子请参见iOS 5 Audio Alarms Don't Sound Without kAudioSessionProperty_OverrideCategoryMixWithOthers On。
您的最安全赌注可能是在应用打开时提示用户更改设置。
【讨论】:
这看起来很有希望,因为你是正确的,这会杀死系统声音。但是,当您进一步阅读时,您会发现他说他的声音仍然会降低,这当然是我们绝对不想要的。至于设置警报音量,即使您手动设置,也无法真正达到“0”。尝试一下。如果你一直滑动它,你仍然会得到一个非常低的音量,但它就在那里,同样,当你在现场时,你不能拥有。这个项目可能是 DOA。 我现在面前没有 iPad,但是当你一直向左滑动时,我的 iPod Touch 会变为 0。 现在不在我的 iPad 前,但在我的 iPhone 上,它并没有完全静音。奇怪的 Apple 会有两种类似的行为,但这可能是因为这是一部手机,因此如果开关没有处于“静音”状态,您总是希望铃声打开。我将不得不玩它。如果它在 iPad 上运行,你会得到答案。 确认 iPad 在一路向左时也不会完全静音。正如我上面所说,我会在你的设备上再次仔细检查。当他们的两个设备都运行相同的操作系统和框架时,他们的两个设备的工作方式与第三个不同是没有意义的。【参考方案2】:我实际上并没有尝试过,但在快速谷歌搜索后,我发现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)
【讨论】:
是的,但那是为了录音。不确定这是否足以播放我们所追求的。 确认:不是。它仅在录制时使系统声音静音,并且虽然它是,但它不支持任何播放,您的或系统的。正如你所说,有一个配套的 PlayAndRecord 变体,但它仍然容易受到系统声音的影响。【参考方案3】:注意:我现在没有 iPad,但我认为它与我的 iPod 有相同的选项。 编辑:不,它没有不。
仅限 iPod:在“设置”=>“声音”中,您可以将“铃声和警报”音量一直拖到最低。当这个音量滑块一直向下时,我的 iPod 根本不会发出任何噪音,除了我打开的程序发出的噪音。
iPad 似乎不像 iPod 那样允许单独控制系统声音和程序声音的音量。
【讨论】:
你知道这是否可以通过编程方式完成。这就是我们试图找出的。我们希望我们的应用程序在进入“实时”模式时自动执行此操作。如果我们不能通过代码更改它,我们希望我们至少可以通过代码查询它以警告用户如果它没有完全设置。 其实在这里做了更多的研究。两件事情。一,是的,您可以弄清楚如何以编程方式执行此操作(尽管它是私有 API),但更重要的是,我不认为您所说的实际上是正确的,因为当我将它一直拖到左侧时,您仍然可以听到声音,虽然非常轻微。您甚至可以通过耳机听到它。换句话说,你不能让它完全静音。 正如我上面提到的,在我的 iPod 上,当您一直向左拖动时,系统声音确实会完全静音。 您必须使用旧版本的 iPad 软件,因为在我的 iPad 上,就像 iPhone 一样,音量滑块下方有一个开关,上面写着“使用按钮更改”。无论哪种方式,正如我所说,在我的 iPhone 和 iPad 上,将滑块完全设置到左侧只会将音量设置为最低水平,而不是使其静音。但是,我没有要测试的 iPod。尽管如此,我还是很惊讶苹果会为同一个操作系统版本做不同的事情。我可能是错的,但我会接受这个赌注。把它举到耳朵上仔细检查。非常低。以上是关于如何暂停 iPad 上的所有声音通知?的主要内容,如果未能解决你的问题,请参考以下文章