2013-05-09 255 views
0

我有一個名爲videoPlayerViewController的UIViewController子類。 在故事板中,我拖出一個UIViewController。我在Storyboard中正確設置了類。 我在屏幕上放了一個按鈕。當我點擊按鈕時,它執行方法playVideo :.MPMoviePlayerController顯示空白屏幕或崩潰的應用程序

- (IBAction)playVideo:(id)sender 
{ 
NSURL *movieURL = [NSURL URLWithString:@"http://www.ebookfrenzy.com/ios_book/movie/movie.mov"]; 

MPMoviePlayerController *player = 
[[MPMoviePlayerController alloc] initWithContentURL: movieURL]; 
[player prepareToPlay]; 
[player.view setFrame: self.view.bounds]; // player's frame must match parent's 
[self.view addSubview: player.view]; 
[player play]; 
} 

我得到一個什麼都不做的黑屏。

這是我在過去6個小時中使用此方法的代碼的最簡單版本。

我試過每個StackOverflow答案。 我只想播放從互聯網上流出的視頻。

如果我設置:

player.movieSourceType = MPMovieSourceTypeStreaming; 

屏幕顯示 「加載」 了一秒鐘,然後崩潰。 我究竟做錯了什麼?

我明白那裏有很多MPMoviePlayerController的問題,只要問一個普通的「它是如何工作」的問題似乎很可笑。我已經有將近6個小時的時間了,Google/Stack Overflow/Apple文檔搜索沒有完成這項工作。

回答

3

我使用了您提供的代碼,但是在創建它之後,我在分配給播放器的頭文件中創建了名爲mcp的MoviePlayerController屬性。這對我有效。電影加載和播放就好了。

在.h文件:

@property (strong, nonatomic) MPMoviePlayerController *mcp; 

在.m文件:

- (IBAction)playVideo:(id)sender 
{ 
    NSURL *movieURL = [NSURL  URLWithString:@"http://www.ebookfrenzy.com/ios_book/movie/movie.mov"]; 

    MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL: movieURL]; 
    [player prepareToPlay]; 
    [player.view setFrame: self.view.bounds]; // player's frame must match parent's 

    _mcp = player; 

    [self.view addSubview: _mcp.view]; 
    [_mcp play]; 
} 
+0

那麼答案歸你,先生。 我創建了一個新項目並使用您的代碼,它的工作原理。 我一直在嘗試它在我目前的項目,它並沒有在那裏工作,但仍然沒有。不知道問題是什麼,但至少我可以看看其他地方 – user1366911 2013-05-09 20:04:29

+0

很高興我能幫上忙。我記得有一個問題,ARC沒有正確保留一個MPMoviePlayerController對象,所以你需要把它作爲一個解決方法分配給一個屬性。這在我的一個項目中有效。 – Indi 2013-05-09 21:24:29

+0

2013年12月..提示 - 它是關於文件擴展名(文件形式網絡)非常flakey。在我的應用程序中,.MOV有效,.mov很難將iPhone崩潰。離奇。此外,模擬器根本無法工作,它完全沒用,只是崩潰。最後在MPMoviePlayerViewController方法的作品中,MPMoviePlayerController是無用的和破碎的。 – Fattie 2013-12-01 20:38:10

相關問題