如何检查MPVolumeView路由按钮是可见的

时间:2013-05-13 14:59:03

标签: ipad mpvolumeview

有没有可以检查MPVolumeView的路由按钮在iPad上可见的方法?

现在我可以通过以下代码访问路线按钮,但我不知道为什么我检查按钮的隐藏,alpha始终为0,无论它是否可见。

for (UIButton *button in volumeView.subviews) {
    if ([button isKindOfClass:[UIButton class]]) {
        // here the button is route button
    }
}

感谢任何帮助,谢谢。

2 个答案:

答案 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