iOS - как определить, выбран ли Apple TV в колонках и телевизорах?

Мое приложение воспроизводит видео в WKWebview, и перед воспроизведением видео я хочу узнать, был ли Apple TV ранее выбран из прикрепленного меню. Это отличается от определения, активны ли AirPlay или зеркальное отображение экрана, так как оба будут оцениваться как ложные до воспроизведения видео, даже если выбран Apple TV.

Как можно обнаружить этот выбор в Objective C?

Показан выбранный Apple TV


person egekhter    schedule 30.10.2020    source источник
comment
лучше проверьте AVAudioSessionPortAirPlay или прочтите stackoverflow .com / questions / 13044894 /, потому что при выборе AirPlay iOS также будет транслировать свой звук, даже без видео.   -  person Ol Sen    schedule 30.10.2020
comment
Это ненадежно, так как оно оценивается как истинное только после представления AVPlayerViewController, а не раньше.   -  person egekhter    schedule 30.10.2020
comment
там даже не участвует AVPlayerViewController. Если ваше приложение запускается и один из проиндексированных выходов-portType [AVAudioSession sharedInstance].currentRoute.outputs[index].portType==AVAudioSessionPortAirPlay, то он выбирается, если только ваш iOS или AppleTV не сломались. Но вы, возможно, хотели знать, как получить доступ к AirPlay через js из WkWebViews.   -  person Ol Sen    schedule 30.10.2020
comment
до сих пор не ясно, в чем ваш вопрос, потому что вы представили меню iOSystems, а не то, что связано с каким-либо wkwebview здесь.   -  person Ol Sen    schedule 30.10.2020
comment
Когда AirPlay выбран, но не активен, и вы пытаетесь воспроизвести видеоэлемент в WKWebView, вместо встроенного воспроизведения будет отображаться черный экран с текстом «Воспроизведение в AirPlay», а затем сразу же приостановить воспроизведение видео, даже не воспроизводя его. В этом сценарии я хотел бы вернуться к использованию встроенного видеоплеера iOS.   -  person egekhter    schedule 30.10.2020
comment
так же, как в этом сценарии. Пользователь смотрит видео, решает переключиться на Airplay, AppleTV необходимо выйти из спящего режима, видео на дисплее черное + продолжается при успехе Воспроизведение через AirPlay, когда спящий режим закончился, но поток еще не запущен. Просто скажу, что AirPlay также является протоколом сокета порта Bonjour (_airplay._tcp). Так что ваш вопрос не относится к iOS из первых рук.   -  person Ol Sen    schedule 30.10.2020