当蓝牙耳机连接到 Apple Watch 时,触觉不会在后台播放
Posted
技术标签:
【中文标题】当蓝牙耳机连接到 Apple Watch 时,触觉不会在后台播放【英文标题】:Haptics don't play in background when bluetooth headphones are connected to Apple Watch 【发布时间】:2016-11-04 13:34:24 【问题描述】:我有一个watchOS3
锻炼应用程序,它使用触觉通知。它正确设置为运行锻炼会话,并且在后台运行时触觉工作。但是,如果蓝牙耳机连接到 Apple Watch,那么您只能获得触觉振动或触觉的音频提示,具体取决于应用当前是显示在表盘上还是在后台运行。
我是这样玩触觉的:
WKInterfaceDevice.current().play(.notification)
以下是详细信息:
Apple Watch Nike+ 未与耳机配对:无论表盘是打开还是关闭,触觉和提示音都会激活。钟声响亮而清晰。
Apple Watch Nike+ 与蓝牙耳机配对: 触觉仅在表盘打开且音频铃声关闭时才会激活。当表盘关闭时,音频提示音打开,触觉关闭。钟声响亮而清晰。
我分别测试了 Apple Watch 与 Platronic Backbeat Go 2(2013 年 7 月发布)和 Bose QuietControl 30(2016 年 10 月发布)配对的应用。结果是一样的。
有人知道这是watchOS 3
的限制、错误还是我需要做的其他事情?
谢谢, 杰夫
【问题讨论】:
这是我在后台播放触觉的方式***.com/a/43489557/5946768 【参考方案1】:还有一个需要考虑的因素,即手表静音主开关是打开还是关闭。
我发现以下是一个合适的解决方法。
如果您希望在蓝牙耳机上播放音乐时注意到您的音频/触觉,请设置此 AVAudiosession 类别:
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: .duckOthers)
然后,当您完成音频/触觉后,将 AVAudioSession 重置为:
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: .mixWithOthers)
我有这个帮助类来帮助管理状态:
import AVFoundation
enum AudioPlaybackState
case playback
case playbackDuckOthers
class AVAudio
private init() // strictly a helper class
static func setAudioState(_ state: AudioPlaybackState)
DispatchQueue.main.async
do
deactivateAudioSession()
switch state
case .playback:
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: .mixWithOthers)
case .playbackDuckOthers:
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: .duckOthers)
activateAudioSession()
catch
static func deactivateAudioSession()
activateAudioSession(false)
private static func activateAudioSession(_ value: Bool=true)
do
try AVAudioSession.sharedInstance().setActive(value)
catch
然后,我可以快速切换:AVAudio.setAudioState(.playbackDuckOthers)
【讨论】:
这在最新的 WatchOS 6 中仍然有效吗?当应用程序在后台运行并通过蓝牙耳机播放音乐时,我似乎无法触发任何触觉【参考方案2】:根据 Apple 的说法,问题中记录的行为是其应有的方式。给定的原因是由于使用蓝牙耳机时触觉点击和触觉音频之间的延迟。我希望这种行为在未来有所改变......
【讨论】:
以上是关于当蓝牙耳机连接到 Apple Watch 时,触觉不会在后台播放的主要内容,如果未能解决你的问题,请参考以下文章
Apple Watch:Digital Crown 触觉反馈