10

MPMoviePlayerControlleriPhone アプリでライブ ストリーミング ビデオを表示するために使用されている のインスタンスがあります。これは問題なく動作していますが、すべての AirPlay 機能を削除したいと考えています。

確かに、次のように具体的に AirPlay を無効にします。

if([self.moviePlayerController respondsToSelector:@selector(setAllowsAirPlay:)]) {
    self.moviePlayerController.allowsAirPlay = NO;
}

ただし、このコードを使用しても、ビデオ コントロールに AirPlay アイコンが表示されます。これを選択して AppleTV を選択すると、オーディオのみが AirPlay 経由で送信され、ビデオはアプリ内で引き続き再生されます。に設定allowsAirPlayするYESと、ビデオとオーディオの両方が AirPlay 経由で送信されます。

なぜこれが起こるのか誰か知っていますか?これは OS の機能で、オーディオを AirPlay 経由で送信できるようにしますか?

4

3 に答える 3

4

AirPlay アイコンがまだ表示されている (表示されたままになっている必要がある) ため、オーディオを適切なデバイスにルーティングできます。Bluetooth ヘッドセット。アイコンを非表示にしようとすることは、悪い習慣と見なされます。

于 2011-12-15T06:28:06.243 に答える
2

I known its an old question but still maybe this will help someone else.
Apple has the following api to hide the route button (AirPlay)

@property (nonatomic) BOOL showsRouteButton NS_AVAILABLE_IOS(4_2);  // Default is YES.

Hope this helps anyone.

于 2014-08-06T11:51:55.370 に答える
0

@Philip K、あなたのヒントはこれをほぼ解決し、4年前のコードをデバッグしました。showsRouteButton は MPMoviePlayerController のプロパティではないため、次のように設定してみました。

myMPMoviePlayer.allowsAirPlay = NO;

しかし、これは何もしませんでした...

また、ビデオプレーヤーにカスタムコントロールを使用しており、ルートボタンが MPVolumeView の一部であることがわかり、そこにあなたのトリックが適用されます:

MPVolumeView * vView = [[MPVolumeView alloc] initWithFrame: bounds];
vView.showsRouteButton = NO;

ビンゴ!ありがとう。

于 2015-03-18T23:32:46.573 に答える