Я бы хотел, чтобы значок 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