2013-02-28 44 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