1

有什么方法可以检查 MPVolumeView 的路由按钮在 iPad 上是否可见?

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

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

任何帮助表示赞赏,谢谢。

4

2 回答 2

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,但分叉是,因此如果需要,请检查它们。

于 2013-09-16T12:35:43.817 回答
0

从 iOS 7.0 开始,有一个名为areWirelessRoutesAvailable. 您也可以注册通知MPVolumeViewWirelessRoutesAvailableDidChangeNotification

于 2014-11-19T20:28:13.887 回答