有没有可以检查MPVolumeView的路由按钮在iPad上可见的方法?
现在我可以通过以下代码访问路线按钮,但我不知道为什么我检查按钮的隐藏,alpha始终为0,无论它是否可见。
for (UIButton *button in volumeView.subviews) {
if ([button isKindOfClass:[UIButton class]]) {
// here the button is route button
}
}
感谢任何帮助,谢谢。
答案 0 :(得分:1)
没有真正的官方方法来检查播放是否可用。
然而,在github上有一个名为airplayDetector的项目,它使用你正在尝试的方法,通过检查按钮的alpha值来观察"财产。
这取自 AirPlayDetector / AirPlayDetector.m
for (UIView *view in volumeButton.subviews) {
if ([view isKindOfClass:[UIButton class]]) {
airplayButton = [view retain];
[airplayButton addObserver:self forKeyPath:@"alpha" options:NSKeyValueObservingOptionNew context:nil];
}
}
您可以在此处找到相关代码:https://github.com/StevePotter/AirPlayDetector
原始代码不符合ARC标准,但叉子是,所以如果需要,请检查它们。
答案 1 :(得分:0)
从iOS 7.0开始,有一个名为areWirelessRoutesAvailable
的属性。您也可以注册通知MPVolumeViewWirelessRoutesAvailableDidChangeNotification
。