2013-02-24 96 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

它顯示黑屏? – 2013-02-25 05:04:28

回答

13

假定前提:項目所使用ARC

MPMoviePlayerController實例僅僅是局部和ARC有沒有告訴你需要保留該實例的方式。由於控制器未被保留,因此結果是您的MPMoviePlayerController實例將在執行playMovie方法執行後直接釋放。

爲了解決這個問題,只需在播放器實例的屬性添加到您的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 2013-02-27 16:11:32

+0

好的......我解決了這個問題......視頻的編解碼器錯了。 – INsanEWay 2013-03-04 18:35:25

+0

這是一個很好的答案,應該被接受。 – 2013-07-03 15:12:35

相關問題