2013-02-24 12 views
5

私は基本的な.movビデオファイルを以下のコードを使用して再生しようとしていますが、私が割り当てたボタンが押されると、表示される唯一のものは黒いフレームですが、ビデオは再生されません。どんな助けもありがとうございます。ありがとう。私のMPMoviePlayerControllerはなぜ再生されませんか?

@implementation SRViewController 

-(IBAction)playMovie{ 
    NSString *url = [[NSBundle mainBundle] 
        pathForResource:@"OntheTitle" ofType:@"mov"]; 
    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] 
             initWithContentURL: [NSURL fileURLWithPath:url]]; 

    // Play Partial Screen 
    player.view.frame = CGRectMake(10, 10, 720, 480); 
    [self.view addSubview:player.view]; 

    // Play Movie 
    [player play]; 
} 

@end 
+0

それは空白の黒い画面を表示していますか? –

答えて

13

想定の前提条件:プロジェクトは、ARCを使用しています。

あなたのMPMoviePlayerControllerインスタンスはローカルのみであり、ARCはそのインスタンスを保持する必要があると伝える方法がありません。コントローラーがビューによって保持されないため、playMovieメソッドの実行の直後にMPMoviePlayerControllerインスタンスが直接解放されます。

この問題を解決するには、プレーヤインスタンスのプロパティをSRViewControllerクラスに追加し、そのプロパティにインスタンスを割り当てます。

ヘッダー:

@instance SRViewController 

    [...] 

    @property (nonatomic,strong) MPMoviePlayerController *player; 

    [...] 

@end 

実装:

@implementation SRViewController 

    [...] 

    -(IBAction)playMovie 
    { 
     NSString *url = [[NSBundle mainBundle] 
         pathForResource:@"OntheTitle" ofType:@"mov"]; 
     self.player = [[MPMoviePlayerController alloc] 
              initWithContentURL: [NSURL fileURLWithPath:url]]; 

     // Play Partial Screen 
     self.player.view.frame = CGRectMake(10, 10, 720, 480); 
     [self.view addSubview:self.player.view]; 

     // Play Movie 
     [self.player play]; 
    } 

    [...] 

@end 
+0

すばらしい答え!ありがとう!私は今ロードするビデオを持っていますが、再生時にはオーディオのみを再生します。私は問題が何であるか分からないので、どんな助けもありがとう。ありがとう! – INsanEWay

+0

OK ...問題を解決しました...ビデオのコーデックが間違っていました。 – INsanEWay

+0

これは優れた回答であり、受け入れられるべきです。 –

関連する問題