2011-10-13 16 views
10

私はMPMoviePlayerControllerのインスタンスを持っています。これは、iPhoneアプリにライブストリーミングビデオを表示するために使用されています。これはうまくいきますが、私はすべてのAirPlay機能を削除したいと考えています。MPMoviePlayerControllerでAirPlayを無効にする

確かに、私は特にそうのようなのAirPlayを無効にします。

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

はしかし、このコードで、私はまだビデオコントロール上のAirPlayアイコンを参照してください。これを選択してAppleTVを選択すると、オーディオだけがAirPlay経由で送信されます。ビデオは引き続きアプリ内で再生されます。 allowsAirPlayYESに設定すると、ビデオ&の両方がAirPlay経由で送信されます。

これはなぜ起こるのですか? AirPlayでオーディオを送信できるようにするには、これはOSの機能ですか?

+0

あなたは 'useApplicationAudioSession = NO;'を設定しようとしましたか? –

+0

私は今 - 私は恐れてどんな違いを作っていないようだ。 –

+0

プレーヤーのコンテンツURLを設定する前にallowAirPlayを設定しましたか? – jbat100

答えて

4

AirPlayアイコンは引き続き表示され、表示されている必要があります。そのため、オーディオは適切なデバイスにルーティングできます。 Bluetoothヘッドセットアイコンを隠そうとするのは悪い習慣とみなされます。

+0

かなり古い質問です。しかし、これをサポートしているAppleのドキュメントへのリンクがあれば、 – Craig

+1

申し訳ありません、私は実際にアップルのエンジニアからTech Talkの回答を受けました。論理的に考えると意味があります。 Bluetoothヘッドセットやスピーカーを使用したい人は、聞き取りにくいなどの理由で、常に使用する必要があります。 –

+0

ありがとうございます。私はそれが理にかなっていると思う、コンテンツのライセンスに関する懸念だけがある。 – Craig

2

私はその古い質問を知っていましたが、それでもなおこれは他の人を助けるでしょう。
Appleは、これは誰も助けルートボタン(エアプレイ)

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

希望を非表示にするには、以下のAPIを持っています。

0

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

myMPMoviePlayer.allowsAirPlay = NO; 

しかし、これは何もしなかった...

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

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

ビンゴ!ありがとう。

関連する問題