【发布时间】:2020-03-24 15:28:51
【问题描述】:
我在 WatchKit 应用扩展中使用 AVSpeechSynthesizer。
逻辑很简单,总结如下:
let utterance = AVSpeechUtterance(string: "Hello, World")
synth.speak(utterance)
这很好用,但语音总是通过 Apple Watch 的板载扬声器转播。
我需要通过连接到 iPhone 的 airpods 进行演讲。
之前我通过WatchConnectivity 将任务委托给iPhone,它运行良好,但由于WatchConnectivity 通信延迟,我将控制逻辑直接移至Apple Watch。
我以为watchOS 会在内部将音频移交给 BLE 设备,但它没有按计划进行。
也许我错过了什么?
我需要指定音频通道synth.outputChannels吗?
我是否需要显示 AirPlay 弹出窗口,要求用户选择音频输出源?
如果是这样,我该怎么做?
我无法在网上找到有关此问题的大量信息,因此我们将不胜感激。
我只是想找到一种通过我的 AirPods 进行演讲的方法。
【问题讨论】:
-
我认为您需要将 AirPods 与手表配对并选择它们作为音频输出
-
@Paulw11 这是一种解决方案,但
watchOS不会询问使用哪个音频设备。例如,在音乐播放器场景中,它会显示对话请求和配对蓝牙设备的选项。在我开始演讲之前,我可以通过播放无声曲目并让 watchOS 弹出它的对话框来解决这个问题。但充其量是hackish。您可以建议一种更清洁的方法吗? -
从表盘向上滑动时不直接使用音频设备选择按钮吗?我相信用户必须将所有音频路由到耳机。
AVRoutePickerView在 watchOS 上不可用 -
@Paulw11 理想情况下我会,但我的客户希望这种帮助/提示来自应用程序。
标签: ios avfoundation watchkit avspeechsynthesizer