14

ビデオ再生をサポートするiPhoneアプリケーションを開発しています。ビデオを再生するためのカスタムコントロールでMPMoviePlayerControllerを使用しています。この目的のために、MPMoviePlayerControllerのコントロールスタイルをMPMovieControlStyleNoneに設定しました。

再生中の動画でAirPlay機能をサポートしたいのですが。ドキュメントに従って、AirPlay機能を有効にするには、MPMoviePlayerControllerの「allowsAirPlay」プロパティをYESに設定する必要があります。カスタムコントロールでMPMoviePlayerControllerを使用している場合、プレーヤーUIにAirPlayボタンを表示するにはどうすればよいですか?

私は以下を試しました:

  1. インスタンス化されたMPVolumeView
  2. MPVolumeViewのshowsRouteButtonプロパティとshowsVolumeSliderプロパティをNOに設定して、ボリュームスライダーとルートボタンを非表示にします
  3. カスタムプレーヤービューにMPVolumeViewを追加しました

MPVolumeViewとMPMoviePlayerControllerの参照を相互に与えていません。ただし、MPMoviePlayerControllerの「allowsAirPlay」がYESに設定されている場合、AirPlayボタンがMPVolumeViewに表示されます。MPVolumeViewとMPMoviePlayerControllerはどのように関連していますか?独立して作成されたこれら2つのクラス間の関係は何ですか?

4

4 に答える 4

10

MPMoviePlayerController では一度に 1 つの動画しか再生できないため、MediaPlayer フレームワークは再生中の動画を常に認識しています。これが、MPVolumeView が MPMoviePlayerController を認識する方法です。公式ドキュメントはありませんが、このようにフレームワークに組み込まれていると思います。

おそらく多くのチェックとバランスが行われているため (そして彼らは一貫した UI を好みます)、Apple は AirPlay ボタン/UI を使用してこの機能を利用することのみを許可しています。ただし、そのボタンは好きな場所に配置できます。

airplayButton = [[MPVolumeView alloc] init];
airplayButton.frame = CGRectMake(myX, myY, 40, 40);
[airplayButton setShowsVolumeSlider:NO];
[customPlayerControls.view addSubview:airplayButton];

幅と高さが 40,40 であると推測したところ、それは正しくないと確信していますが、ボタンを所定の位置に配置したら、問題はありませんでした。

于 2011-08-08T21:03:50.897 に答える
2
for (UIButton *button in volumeView.subviews) {
if ([button isKindOfClass:[UIButton class]]) {
    [button setImage:[UIImage imageNamed:@"custom-route-button.png"] forState:UIControlStateNormal];
    [button sizeToFit];
}}

これが役立つと思います。

于 2011-06-03T08:07:44.943 に答える
2

MPVolumeView には、ボリューム スライダーを非表示にして Route ボタンを表示する属性があります。したがって、物を隠してビューをトラバースする必要はありません。

MPVolumeView *volumeView = [[[MPVolumeView alloc] initWithFrame:myContainerView.bounds] autorelease];
volumeView.showsVolumeSlider = NO;
volumeView.showsRouteButton = YES;
[myContainerView addSubview:volumeView];

AirPlay (Route) ボタンの配置が期待どおりでない場合があるため、コンテナ ビューのフレームを少し再生して、目的の場所に移動する必要がある場合があります。

于 2012-02-25T19:27:49.443 に答える
0

答えは、できません。iOS 4.3 の時点で、Airplay に独自のコントロールを提供する公式の方法はありません。その機能が必要な場合は、標準のコントロールを使用する必要があります。

于 2011-06-03T12:18:10.663 に答える