1

MPVolumeView のルート ボタンが iPad に表示されていることを確認できる方法はありますか?

以下のコードでルートボタンにアクセスできるようになりましたが、ボタンの非表示をチェックする理由がわかりません。表示されているかどうかに関係なく、アルファは常に0です。

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

どんな助けでも感謝します、ありがとう。

4

2 に答える 2

1

エアプレイが利用可能かどうかを確認する公式の方法はありません。

ただし、プロパティを「監視」してボタンのアルファ値をチェックすることにより、試みているアプローチを使用する airplayDetector と呼ばれる github のプロジェクトがあります。

これは 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 に答える