Hace 2 días que intento resolver este problema y me rindo. Estoy tratando de implementar un botón Airplay personalizado (tengo que ser porque el fondo es blanco y el botón debe ser negro). He añadido una vista en Interfacebuilder y elegí mpVolumeView para ella. Luego hice las conexiones y escribí el siguiente código;Cómo personalizar el botón Airplay cuando Airplay está activo
viewDidLoad.. {
.....
[_volumeView setShowsVolumeSlider:NO];
for (UIButton *button in _volumeView.subviews) {
if ([button isKindOfClass:[UIButton class]]) {
[button setImage:[UIImage imageNamed:@"airplay_icon.png"] forState:UIControlStateNormal];
[button addObserver:self forKeyPath:@"alpha" options:NSKeyValueObservingOptionNew context:nil];
[button addTarget:self action:@selector(switchAirplayButton) forControlEvents:UIControlEventTouchUpInside];
[button sizeToFit];
}
}
[_volumeView sizeToFit];
}
-(void)switchAirplayButton {
for (UIButton *button in _volumeView.subviews) {
if ([button isKindOfClass:[UIButton class]]) {
NSLog(@"%d", _controlBar.player.airPlayVideoActive);
if(_controlBar.player.airPlayVideoActive) {
[button setImage:[UIImage imageNamed:@"airplay_icon_pressed.png"] forState:UIControlStateNormal];
} else [button setImage:[UIImage imageNamed:@"airplay_icon.png"] forState:UIControlStateNormal];
[button sizeToFit];
}
}
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if ([object isKindOfClass:[UIButton class]] && [[change valueForKey:NSKeyValueChangeNewKey] intValue] == 1) {
[(UIButton *)object setImage:[UIImage imageNamed:@"airplay_icon.png"] forState:UIControlStateNormal];
[(UIButton *)object sizeToFit];
}
}
El "jugador" es un singelton basado en AVPLayer. Sin embargo, siempre devuelve falso al verificar si airPlay está activo. Quizás es solo porque estoy usando sonido, no video.
Así que mi pregunta es, ¿cómo podría cambiar el botón para ... digamos uno naranja (solo para que coincida con el resto de la interfaz) cuando se transmite airplay (al igual que la manzana lo está haciendo azul). He intentado todo y simplemente no funciona en absoluto. Por favor, ayúdame.
chikuba, cómo manejas este problema, estoy enfrentando el mismo problema en mi aplicación de VoIP para iOS, ¿podrías darme alguna sugerencia? ¡Gracias! –