2つの MPMediaPickerController を配置すると片方が真っ黒になる

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 では動かん、ってことなので仕様なんですかね。ちょっと対策を思案中。

カテゴリー: iPad パーマリンク

2つの MPMediaPickerController を配置すると片方が真っ黒になる への1件のコメント

  1. masuda のコメント:

    ありゃ、MPMoviePlayerController じゃなくて、MPMoviePlayerViewController を使えということになっている。

    iPhoneアプリ開発と留学 : [iPhone開発][iPad開発] iOS4 にしたら動画再生が出来なくなった場合の対処について
    http://blog.livedoor.jp/pnfhy316/archives/1340213.html

    後で試してみる。
    # でも、MPMoviePlayerController のままで、動いている(in iPad 4.3.2)

コメントは停止中です。