Próbowałem rozwiązać ten problem przez 2 dni i poddaję się. Próbuję zaimplementować dostosowany przycisk airplay (muszę mieć świadomość, że tło jest białe, a przycisk musi być czarny). Ive dodał widok w interfacebuilder i wybrał dla niego mpVolumeView. Potem zrobiłem połączenia i napisałem poniższy kod;Jak dostosować przycisk Airplay, gdy gra jest włączona?
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];
}
}
"Gracz" to singel na podstawie AVPLayer. Jednak zawsze zwraca wartość false podczas sprawdzania, czy funkcja airPlay jest aktywna. Może to tylko dlatego, że używam dźwięku, a nie wideo.
Moje pytanie brzmi: jak mogę zmienić przycisk, aby ... powiedzmy pomarańczowy (tylko po to, aby dopasować resztę interfejsu), gdy strumień jest w strumieniu (tak jak jabłko robi to na niebiesko). Próbowałem wszystkiego i po prostu nie działa. Proszę pomóż mi.
Chikuba, jak radzisz sobie z tym problemem, mam do czynienia z tym samym problemem w mojej aplikacji VoIP iOS, możesz udzielić sugestii? Dzięki! –