2013-02-28 92 views
1

我試圖讓一個mp4電影在UICollectionViewCell中播放。我沒有運氣讓它顯示。所以,我的第一個問題是:這可能嗎?如果是這樣,我做錯了什麼?這是一個非ARC項目,我沒有使用任何XIBs或情節串連圖板...UICollectionViewCell中的MPMoviePlayerController

NSURL * theURL = nil; 
NSBundle * bundle = [NSBundle mainBundle]; 
if (bundle) 
{ 
    NSString * thePath = [bundle pathForResource:@"intro" ofType:@"mp4"]; 
    if (thePath) 
    { 
     theURL = [NSURL fileURLWithPath:thePath]; 
    } 
} 

MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL: theURL]; 
[player prepareToPlay]; 
[player.view setFrame: self.contentView.bounds]; // player's frame must match parent's 
[self.contentView addSubview: player.view]; 
[player play]; 
[player release]; 
+0

將播放器放在@property中,並檢查它。播放後不要釋放它。 – iDev 2013-02-28 22:56:57

回答

1

我看來像你釋放的球員,所以它被釋放。

評論最後一個版本,看看是否修復它。如果是這樣,您需要將引用保存在某處(單元的成員ivar/property),並在稍後發佈。

+0

我不知道這是否會解決它:'release'調用會減少保留計數,但是他已經將該播放器添加爲子視圖,所以保留計數不會爲零,因此不會被釋放,直到玩家離開超級視角。我同意發佈不好,但可能還有其他的東西在播放。 – lxt 2013-02-28 22:49:13

+1

他將播放器視圖添加爲子視圖。這不會將播放器控制器保存在內存中。 – TomSwift 2013-02-28 22:51:23

+0

非常真實,我的不好。抱歉。 – lxt 2013-02-28 22:56:51