2013-10-02 117 views
0

我試圖在啓動屏幕顯示後直接進行視頻播放,但是如果狀態欄顯示在頂部,則顯示所有黑屏。此刻,這是所有的應用程序這樣做,沒有別的事情發生,據我所知應該停止視頻播放。MPMoviePlayerController只顯示黑屏

視頻在iPad上播放沒有任何問題,否則似乎是在正確的格式,等等。我針對的是iOS 7,我嘗試過使用不同的視頻,並嘗試使用MPMoviePlayerViewController來代替。所有結果都一樣。

這是我正在使用的代碼。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    NSURL *movieURL = [[NSBundle mainBundle] URLForResource:@"IntroMovie" withExtension:@"mov"]; 

    MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieURL]; 

    [moviePlayer prepareToPlay]; 

    [self.window addSubview:moviePlayer.view]; 

    [moviePlayer play]; 

    return YES; 
} 
+0

確實存在資源名稱沒有錯字(記它是區分大小寫的)?你可以NSLog movieURL嗎? –

+0

這也是你的AppDelegate中所有的東西嗎?哪裏創建窗口? –

+0

movieURL外觀正確,資源名稱中沒有拼寫錯誤。此外,我確實有一個窗口正在創建,但刪除,因爲提到了一個不需要的控制器。 –

回答

1

您需要創建MPMoviePlayerViewController對象而不是前一個。playMovie方法應該在makeKeyAndVisible後調用。如果它仍然不是工作嘗試添加斷點,並檢查是否爲給定的視頻的網址是否正確,如果它已經被添加到複製包resources.Hope這有助於

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 

    // Override point for customization after application launch. 
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 
    self.window.rootViewController = self.viewController; 
    [self.window makeKeyAndVisible]; 
     [self playMovie]; 
    return YES; 
} 


-(void)playMovie 
{ 
    NSURL *movieURL; 
    NSBundle *bundle = [NSBundle mainBundle]; 
    if(bundle != nil) 
    { 
     NSString *moviePath = [bundle pathForResource:@"intro" ofType:@"m4v"]; 
     if (moviePath) 
     { 
      movieURL = [NSURL fileURLWithPath:moviePath]; 

     } 
    } 


    moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL]; 
    moviePlayer.moviePlayer.controlStyle = MPMovieControlStyleNone; 
    moviePlayer.moviePlayer.scalingMode = MPMovieScalingModeFill; 
    [self.viewController presentViewController:moviePlayer animated:NO completion:^{ 

    }]; 
    [moviePlayer.moviePlayer play]; 




} 
+0

這個工作很好,我沒有意識到兩者是不同的。 –

+0

不要假設你知道如何停止加載png和視頻播放之間的轉換? –

0

假設你有沒有錯別字,正確的項目設置,你可能有唯一的問題是,用於創建「MOV」文件的編解碼器中。嘗試使用其他一些mov文件或嘗試將mov文件放入電話庫並嘗試從那裏播放

+0

我試過另一部電影,我知道在iPad上工作,並沒有播放,所以我不知道這將是一個問題。我試過的文件是一個m4v文件。 –

+0

GREAT TIP ...擴展可能是一個問題,並且實際上會導致崩潰。 2013年12月..它是關於文件擴展名(文件形式網絡)非常flakey。在我的應用程序中,.MOV有效,.mov很難將iPhone崩潰。離奇。此外,模擬器根本無法工作,它完全沒用,只是崩潰。最後在MPMoviePlayerViewController方法的作品中,MPMoviePlayerController是無用的和破碎的。 – Fattie

+0

感謝Grzegorz,保存了一天 – Fattie