0

「MoviePlayerController」のサブクラスが何であるかを理解しているかどうかはわかりません。 a)新しいView Controllerを作成してMPMoviePlayerControllerインスタンスを追加するときですか? b)他に何か?いくつかのコード例は非常に役に立ちます。MPMoviePlayerコントローラをサブクラス化する方法

おかげ

答えて

3

これはあまりにも多くの文字数を消費するので、これは上記のコメントではありません。

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このコードをチェックしてうまくいきました。

+0

似たようなことをしましたが動作します:)「MPMoviePlayerControllerを使用したView ControllerでiVarとして作業しています」、これは私の質問に対する本当の答えです。誰かが 'サブクラスmpmovieplayer' iVarで継承または表示します。ありがとう。 – 1110

2

あなたはサブクラス化が何を意味するのか、あなたは、トピック「継承」を研究しなければならないわからない場合。 Xcodeでファイルを作成するときに、特にクラスをサブクラス化している可能性が最も高いiOS用のサブジェクトをカバーする多くの素材が必要です。などのビューを作成するときに、あなたがNSObjectのかのUIViewControllerのサブクラスを作成することがありますほとんどの時間

それはストリーミング用に構築された、非常に高度なクラスだとあなたはおそらくMPMoviePlayerControllerをサブクラス化する必要はありません。 MPMoviePlayerViewControllerは通常のビューコントローラのように動作しますが、MPMoviePlayerControllerが既にiVarとして付属しています。以下

凝縮宣言:

https://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/MultimediaPG/UsingVideo/UsingVideo.html#//apple_ref/doc/uid/TP40009767-CH3-SW1

ムービープレイヤーのXcodeプロジェクトあなたがここに見つけることができます::

をあなたがここにアップルのドキュメントセンターでいくつかのサンプルコードを見つけることができます

@interface MPMoviePlayerViewController : UIViewController {} 
@property(nonatomic, readonly) MPMoviePlayerController *moviePlayer; 
@end 

https://developer.apple.com/library/ios/#samplecode/MoviePlayer_iPhone/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007798

iOSデバイスからムービーを再生するのは簡単ですが、アップルのドキュメントですべてをお読みください。これらのクラスのヘッダーファイルをチェックアウトすることで、あなたが扱っていることについてより多くの洞察を得ることができます。

希望に役立ちます。

+0

MPMoviePlayerViewControllerを使用しようとしましたが、いくつかのカスタムメソッドハンドラを使用してタップを検出し、プレーヤーでダブルタップする必要がある以外はすべて正常に動作します。だから、基本的に私はそれをサブクラス化されている 'MPMoviePlayerController'インスタンスでUIViewControllerクラスを作成する場合は、右ですか? – 1110

+0

+1愚かな質問を解決するための強力な努力のために+1。 – Till

+0

@till thanks :) – anthonyherron