3

私は混乱しています:

MPMoviePlayerViewController と MPMoviePlayerController

iOS6でビデオをローカルで再生する最良の方法は何ですか?

これは私のコードです

NSURL * url = [NSURL fileURLWithPath: [[NSBundle mainBundle] pathForResource: @ "17" OfType: @ "mov"]];

     MoviePlayer = [[MPMoviePlayerViewController alloc]
                     initWithContentURL: url];
     [self presentMoviePlayerViewControllerAnimated: MoviePlayer];
     [moviePlayer.moviePlayer play];
     [[NSNotificationCenter defaultCenter] addObserver: self selector: @ selector (moviePlayerPlaybackStateChanged :) name: MPMoviePlayerPlaybackStateDidChangeNotification object: nil];
}


-(void)moviePlayerPlaybackStateChanged:(NSNotification *)notification {


}
4

1 に答える 1

8

MPMoviePlayerViewController はフルスクリーン ビデオを再生するためのもので、主に電話で使用されます。

MPMoviePlayerController は埋め込みビデオに使用できます。つまり、iPad のフルスクリーンではありません。ストーリーボードのシーンに空のビューをプルして、目的のサイズにする必要があります。次に、コードで、movieplayer をそのサブビューに配置します。コードの最初の部分は viewDidLoad; にある必要があります。

//movieplayer initialization
NSString *path = [[NSBundle mainBundle] pathForResource:@"videoName" ofType:@"m4v"];
NSURL *videoURL = [NSURL fileURLWithPath:path];
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
[moviePlayer setControlStyle:MPMovieControlStyleNone]; // for custom controls, for default controls you can leave this line out.

この部分は viewWillAppear に入ります。

moviePlayer.repeatMode = MPMovieRepeatModeOne; // for looping
[moviePlayer.view setFrame: self.videoSuper.bounds]; 
[self.videoSuper addSubview: moviePlayer.view];
[moviePlayer prepareToPlay];
[moviePlayer play];

ここで、videoSuper はストーリーボードに追加されたサブビューです。正しく接続してください。

//in .h
@property (weak, nonatomic) IBOutlet UIView *videoSuper;
于 2012-10-24T04:03:34.290 に答える