AVAudioSession routeSharingPolicy: ValidateRouteSharingPolicyParameters: параметры категории не поддерживаются - PullRequest
0 голосов
/ 27 сентября 2019

Следующий код для настройки AVAudioSession 'routeSharingPolicy как .longForm вызывает эту ошибку:

[avas] AVAudioSession.mm:391:ValidateRouteSharingPolicyParameters: опция категории 0x44 (s) не поддерживается в сочетании с AVAudioSessionRouteSharingPolicyLongForm

Может кто-нибудь помочь мне понять, почему?Похоже, что все 3 из этих CategoryOptions вызывают ошибку (каждая с различными шестнадцатеричными значениями), но они не требуются для поддержки AirPlay и т. Д .?

Удаление их, похоже, позволяет избежатьпроблема, а не ее устранение, и, согласно этой статье , установка routeSharingPolicy на .longForm является ключевой частью процесса установки AirPlay.

let audioSession = AVAudioSession.sharedInstance()
var options = [AVAudioSession.CategoryOptions.allowBluetooth, AVAudioSession.CategoryOptions.allowAirPlay]
if mixWithOtherAudio {
    options.append(AVAudioSession.CategoryOptions.mixWithOthers)
}
try audioSession.setCategory(
    AVAudioSession.Category.playback,
    mode: AVAudioSession.Mode.default,
    policy: AVAudioSession.RouteSharingPolicy.longForm,
    options: AVAudioSession.CategoryOptions(options)
)
...