我试图覆盖在 tvOS 上进行焦点更改时播放的声音,但我似乎找不到任何表明这是否可能的东西。我浏览了 Apple 文档,并查看了一些声音 API,但似乎没有一个适合。有人知道这是否可能吗?如果这是可能的,如何实现?
问问题
176 次
1 回答
1
这可以通过在 tvOS 11 中添加到 SDK 的soundIdentifierForFocusUpdate来实现
使用此方法,您可以自定义或删除焦点更新时播放的 tvOS 的默认声音。
要删除声音,您可以返回 UIFocusSoundIdentifier.none
override func soundIdentifierForFocusUpdate(in context: UIFocusUpdateContext) -> UIFocusSoundIdentifier? {
return UIFocusSoundIdentifier.none
}
要使用不同的声音,您必须在目标中包含新的声音文件,并按如下所示加载:
let myPing = UIFocusSoundIdentifier.init(rawValue: "customPing")
let soundURL = Bundle.main.url(forResource: "ping", withExtension: "aif")!
UIFocusSystem.register(_: soundURL, forSoundIdentifier: myPing)
然后你必须从soundIdentifierForFocusUpdate返回那个新的声音:
override func soundIdentifierForFocusUpdate(in context: UIFocusUpdateContext) -> UIFocusSoundIdentifier? {
return myPing
}
Apple 在以下链接中记录了所有内容: 使用自定义声音进行焦点移动
于 2018-03-27T09:27:41.633 回答