iPad で mpeg などの動画を表示するためには、MPMediaPickerController を使います。
MPMediaPickerController Class Reference
http://developer.apple.com/library/ios/#documentation/mediaplayer/reference/MPMediaPickerController_ClassReference/Reference/Reference.html
NSString mpegFile = @"douga"; MPMoviePlayerController *movie = [[MPMoviePlayerController alloc] initWithContentURL: [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:mpegFile ofType:@"mp4"]]]; movie.shouldAutoplay = YES; // auto で開始 movie.controlStyle = MPMovieControlStyleNone; // コントローラーを非表示 movie.scalingMode = MPMovieScalingModeFill; // サイズに合わせる movie.view.frame = CGRectMake(0,0,300,200);
これを viewDidLoad の時にでも記述します。
で、普通は1枚しか表示しないんですが、電子書籍上、サマリなんかで複数枚表示したいと思った訳です。
↓な感じに。
NSString mpegFile = @"douga"; for ( int x=0; x<2; x++ ) { for ( int y=0; y<2; y++ ) { MPMoviePlayerController *movie = [[MPMoviePlayerController alloc] initWithContentURL: [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:mpegFile ofType:@"mp4"]]]; movie.shouldAutoplay = YES; // auto で開始 movie.controlStyle = MPMovieControlStyleNone; // コントローラーを非表示 movie.scalingMode = MPMovieScalingModeFill; // サイズに合わせる movie.view.frame = CGRectMake(x*300,y*200,300,200); }}
なのですが、何故か最後の追加した movie だけが表示されて、後は真っ暗なのです。
この例だと、同じファイルを表示させていますが、実際は別々のファイル名を指定します。
理由はよく分からないのですが、英語のサイトでも multi MPMoviePlayerController では動かん、ってことなので仕様なんですかね。ちょっと対策を思案中。
ありゃ、MPMoviePlayerController じゃなくて、MPMoviePlayerViewController を使えということになっている。
iPhoneアプリ開発と留学 : [iPhone開発][iPad開発] iOS4 にしたら動画再生が出来なくなった場合の対処について
http://blog.livedoor.jp/pnfhy316/archives/1340213.html
後で試してみる。
# でも、MPMoviePlayerController のままで、動いている(in iPad 4.3.2)