2013-07-08 80 views
1

我想在viewDidLoad的ViewController中播放簡單的mp4文件。如果我運行的代碼,url路徑似乎是正確的,但電影加載和加載。奇怪的是,如果我在不同的XCode項目中運行相同的代碼,它的工作原理。(相同的設置)電影無法加載

任何想法?

PS:我已經嘗試過不同的方式來設置網址或加載電影。路徑,構建階段和mp4文件已經檢查。

繼承人我viewDidLoad中:


- (void)viewDidLoad {

[super viewDidLoad]; 

NSString *url = [[NSBundle mainBundle] pathForResource:@"logo.mp4" ofType:nil]; 

MPMoviePlayerViewController *playerViewController =[[MPMoviePlayerViewController alloc]initWithContentURL:[NSURL fileURLWithPath:url]];  

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(movieFinishedCallback:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:[playerViewController moviePlayer]]; 

[self.view addSubview:playerViewController.view]; 

NSLog(@"%@", url); 

//---play movie--- 
MPMoviePlayerController *player = [playerViewController moviePlayer]; 
//[player setControlStyle:MPMovieControlStyleNone]; 
player.scalingMode =MPMovieScalingModeFill; 
[player play]; 

} 
+0

有沒有辦法使用[超級viewDidLoad中]作爲最後一個coomand任何具體的原因是什麼? – ratul

+0

我已經看到這篇文章,並嘗試這種方式。無論如何沒有變化: -/ 種令人沮喪的.. – BasySilver

+0

其實我認爲球員工作到目前爲止罰款。問題似乎是文件本身。但是,如果兩條路徑都是正確的,我必須在哪裏搜索? – BasySilver

回答

2

Here is the problem:

NSString *url = [[NSBundle mainBundle] pathForResource:@"logo.mp4" ofType:nil]; 

You must change to this:

NSString *url = [[NSBundle mainBundle] pathForResource:@"logo" ofType:@"mp4"]; 

Also try to comment this because i think the method is being called by the notification MPMoviePlayerPlaybackDidFinishNotification

movieFinishedCallback: 
+0

沒有變化。問題依然存在。試圖以幾種不同的方式設置網址。 – BasySilver

+1

我不認爲這是一個問題。我使用過這樣的代碼,它工作得很好。 'type'參數不是必需的。事實上,這來自文檔「如果擴展名爲空字符串或零,則假定擴展名不存在,並且該文件是遇到的第一個與名稱完全匹配的文件。」 – borrrden

+0

movieFinishedCallback的內容是什麼:? – soryngod