Đã cố gắng giải quyết vấn đề này trong 2 ngày và tôi từ bỏ. Im cố gắng để thực hiện một nút airplay tùy chỉnh (tôi phải beacuse nền là màu trắng và nút phải là màu đen). Ive đã thêm một khung nhìn vào trong interfacebuilder và chọn mpVolumeView cho nó. Sau đó, tôi đã thực hiện các kết nối và viết mã sau đây;Cách tùy chỉnh nút Airplay khi phát sóng đang hoạt động
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];
}
}
"Người chơi" là một singelton dựa trên AVPLayer. Tuy nhiên, nó luôn luôn trả về false khi kiểm tra xem airPlay có đang hoạt động không. Có lẽ nó chỉ là beacuse im sử dụng âm thanh, không phải video. Vì vậy, câu hỏi của tôi là, làm thế nào tôi có thể thay đổi nút để ... cho phép nói một màu cam (chỉ để phù hợp với phần còn lại của giao diện) khi phát sóng là streaming (giống như táo đang làm cho nó màu xanh). Tôi đã thử mọi thứ và nó không hoạt động chút nào. Làm ơn giúp tôi.
chikuba, cách bạn xử lý vấn đề này, tôi phải đối mặt với cùng một vấn đề trong ứng dụng gọi điện thoại voip trên iOS, bạn có thể đưa ra đề xuất không? Cảm ơn! –