Как переопределить звук обновления движка фокуса в 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 по следующей ссылке: Использование пользовательских звуков для движения фокуса

Другие вопросы по тегам