gpt4 book ai didi

ios - 当应用程序处于后台且手机处于振动状态时,某些警报应用程序(例如 Alarmy)如何能够在 iPhone 上播放声音

转载 作者:技术小花猫 更新时间:2023-10-29 10:26:31 27 4
gpt4 key购买 nike

我正在开发可以提醒用户一些重要事情的应用程序。我使用本地通知来提醒用户。在 iOS 上,我发现如果手机处于振动状态,通知将不会响起。对于应用程序的许多用户来说,这是一个破坏交易的因素,但我一直把这个问题搁置到现在,因为我认为 iOS 不允许应用程序在后台播放声音。

通过启用音频背景模式,即使手机处于振动状态,音乐应用程序也可以播放歌曲,但它不允许您安排在特定时间播放歌曲。

最近我看到有些应用程序即使在后台也能在特定时间播放声音。一个这样的应用程序是 Alarmy警报应用程序。我不认为他们在警报到期时通过本地通知播放音乐,因为即使我清除通知后音乐仍在继续播放。从本地通知文档中,我了解到在用户单击通知之前触发本地通知时我无法运行任何代码。因此,我无法启动可以振动播放声音的音频播放器。

即使手机处于振动状态并且应用程序在 iOS 中处于后台,这些应用程序如何能够播放声音?

最佳答案

实现这种功能的方法很少。作为引用,我推荐this link.

当设备的铃声开关设置为振动时实际播放声音

首先确保在功能中包含音频背景模式,以便在后台播放音频。

然后,

swift 4

do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayAndRecord, with: [.duckOthers, .defaultToSpeaker])
try AVAudioSession.sharedInstance().setActive(true)
UIApplication.shared.beginReceivingRemoteControlEvents()
} catch {
NSLog("Audio Session error: \(error)")
}

这里我们将共享 Audio Session 的类别设置为AVAudioSessionCategoryPlayAndRecord,以便我们可以播放声音,同时设备的铃声开关设置为振动。

.duckOthers 被指定为使其他音频更安静,如果有任何混合音频在播放,这样我们的警报就可以听到。如果您喜欢不同的行为,您可以忽略它或使用其他选项。

.defaultToSpeaker 已指定,因此音量会转到扬声器,声音会大得多,应该可以轻松唤醒我们的用户。

beginReceivingRemoteControlEvents 让应用程序处理远程控制选项,例如锁定屏幕上的播放/暂停按钮,以便我们的用户更容易将闹钟静音,一旦他们醒来。

关于ios - 当应用程序处于后台且手机处于振动状态时,某些警报应用程序(例如 Alarmy)如何能够在 iPhone 上播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50644978/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com