3

我试图覆盖在 tvOS 上进行焦点更改时播放的声音,但我似乎找不到任何表明这是否可能的东西。我浏览了 Apple 文档,并查看了一些声音 API,但似乎没有一个适合。有人知道这是否可能吗?如果这是可能的,如何实现?

4

1 回答 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 回答