Обнаружение доступных устройств трансляции - PullRequest
2 голосов
/ 07 июля 2019

Я бы хотел, чтобы значок Airplay в приложении для iPhone отображался как UIBarButtonItem только в том случае, если доступны устройства трансляции (кроме iPhone пользователя).

var volumeView = MPVolumeView!

Я настроил UIBarButtonItem в viewDidLoad() так:

volumeView = MPVolumeView(frame: CGRect(x: 0.0, y: 0.0, width: 0.0, height: 0.0))
volumeView.showsVolumeSlider = false
let airplayBarButtonItem = UIBarButtonItem(customView: volumeView)
if let routeButton = volumeView.subviews.last as? UIButton,
  let routeButtonTemplateImage = routeButton.currentImage?.withRenderingMode(.alwaysTemplate) {
  volumeView.setRouteButtonImage(routeButtonTemplateImage, for: .normal)
  volumeView.tintColor = myColor
}

volumeView.showsRouteButton = volumeView.areWirelessRoutesAvailable

В viewWillAppear():

volumeView.showsRouteButton = volumeView.areWirelessRoutesAvailable

Теперь приложению необходимо обновить текущий экран, когда устройства Airplay станут доступны, есть ли способ сделать это?

РЕДАКТИРОВАТЬ: Это уведомление кажется устаревшим, есть ли замена? https://developer.apple.com/documentation/mediaplayer/mpvolumeviewwirelessrouteactivedidchangenotification?language=objc#discussion

...