「MoviePlayerController」のサブクラスが何であるかを理解しているかどうかはわかりません。 a)新しいView Controllerを作成してMPMoviePlayerControllerインスタンスを追加するときですか? b)他に何か?いくつかのコード例は非常に役に立ちます。MPMoviePlayerコントローラをサブクラス化する方法
おかげ
「MoviePlayerController」のサブクラスが何であるかを理解しているかどうかはわかりません。 a)新しいView Controllerを作成してMPMoviePlayerControllerインスタンスを追加するときですか? b)他に何か?いくつかのコード例は非常に役に立ちます。MPMoviePlayerコントローラをサブクラス化する方法
おかげ
これはあまりにも多くの文字数を消費するので、これは上記のコメントではありません。
Okay @ 1110プレーヤービューにUITapGestureRecognizerを追加することを前提にしていますが、フルスクリーン/フルスクリーンを削除するピンチジェスチャーを既にサポートしていることを忘れないでください。 以下のコードは、MPMoviePlayerControllerをiVarとして使用するビューコントローラで作業していることを前提としています。
プレイヤーコントローラを表示/非表示にするためにタップ検出回数が1になっているため、タップを検出したくないと思われます。以下は
はダブルタップのためのジェスチャー認識とあなたのためのコード例であるコードについてPlayerViewController.h
#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
@interface PlayerViewController : UIViewController {}
//iVar
@property (nonatomic, retain) MPMoviePlayerController *player;
// methods
- (void)didDetectDoubleTap:(UITapGestureRecognizer *)tap;
@end
コード
#import "PlayerViewController.h"
@implementation PlayerViewController
@synthesize player;
- (void)dealloc
{
[player release];
[super dealloc];
}
- (void)viewDidLoad
{
// initialize an instance of MPMoviePlayerController and set it to the iVar
MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://path/to/video.whatever"]];
// the frame is the size of the video on the view
mp.view.frame = CGRectMake(0.0, 0.0, self.view.bounds.size.width, self.view.bounds.size.height/2);
self.player = mp;
[mp release];
[self.view addSubview:self.player.view];
[self.player prepareToPlay];
// add tap gesture recognizer to the player.view property
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didDetectDoubleTap:)];
tapGesture.numberOfTapsRequired = 2;
[self.player.view addGestureRecognizer:tapGesture];
[tapGesture release];
// tell the movie to play
[self.player play];
[super viewDidLoad];
}
- (void)didDetectDoubleTap:(UITapGestureRecognizer *)tap {
// do whatever you want to do here
NSLog(@"double tap detected");
}
@end
FYI PlayerViewController.mため、Iこのコードをチェックしてうまくいきました。
あなたはサブクラス化が何を意味するのか、あなたは、トピック「継承」を研究しなければならないわからない場合。 Xcodeでファイルを作成するときに、特にクラスをサブクラス化している可能性が最も高いiOS用のサブジェクトをカバーする多くの素材が必要です。などのビューを作成するときに、あなたがNSObjectのかのUIViewControllerのサブクラスを作成することがありますほとんどの時間
それはストリーミング用に構築された、非常に高度なクラスだとあなたはおそらくMPMoviePlayerControllerをサブクラス化する必要はありません。 MPMoviePlayerViewControllerは通常のビューコントローラのように動作しますが、MPMoviePlayerControllerが既にiVarとして付属しています。以下
凝縮宣言:
ムービープレイヤーのXcodeプロジェクトあなたがここに見つけることができます::
をあなたがここにアップルのドキュメントセンターでいくつかのサンプルコードを見つけることができます@interface MPMoviePlayerViewController : UIViewController {}
@property(nonatomic, readonly) MPMoviePlayerController *moviePlayer;
@end
iOSデバイスからムービーを再生するのは簡単ですが、アップルのドキュメントですべてをお読みください。これらのクラスのヘッダーファイルをチェックアウトすることで、あなたが扱っていることについてより多くの洞察を得ることができます。
希望に役立ちます。
MPMoviePlayerViewControllerを使用しようとしましたが、いくつかのカスタムメソッドハンドラを使用してタップを検出し、プレーヤーでダブルタップする必要がある以外はすべて正常に動作します。だから、基本的に私はそれをサブクラス化されている 'MPMoviePlayerController'インスタンスでUIViewControllerクラスを作成する場合は、右ですか? – 1110
+1愚かな質問を解決するための強力な努力のために+1。 – Till
@till thanks :) – anthonyherron
似たようなことをしましたが動作します:)「MPMoviePlayerControllerを使用したView ControllerでiVarとして作業しています」、これは私の質問に対する本当の答えです。誰かが 'サブクラスmpmovieplayer' iVarで継承または表示します。ありがとう。 – 1110