Как переопределить звук обновления движка фокуса в tvOS
Я пытаюсь переопределить звук, который воспроизводится при смене фокуса в tvOS, но я не могу найти ничего, указывающего, возможно ли это. Я немного просмотрел документацию Apple и посмотрел на некоторые звуковые API, но ни один из них не подошел. Кто-нибудь знает, возможно ли это? Если это возможно, как это может быть достигнуто?
1 ответ
Это может быть достигнуто с помощью soundIdentifierForFocusUpdate, который был добавлен в SDK в tvOS 11
Используя этот метод, вы можете настроить или удалить звук по умолчанию для 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 по следующей ссылке: Использование пользовательских звуков для движения фокуса