自定义单元格中的 MPMoviePlayerViewController
Posted
技术标签:
【中文标题】自定义单元格中的 MPMoviePlayerViewController【英文标题】:MPMoviePlayerViewController in a custom cell 【发布时间】:2013-12-19 09:31:45 【问题描述】:我有一个带有新闻提要屏幕的应用程序,例如 facebook 应用程序中的应用程序。为此,我制作了一个自定义单元格,它有一个contentView
,即UIView
。此 contentView 被初始化以显示文本、图像或视频。这是在自定义单元格的类中完成的。对于视频,我正在尝试将 MPMoviePlayerViewController 作为子视图添加到单元格的 contentView:
MPMoviePlayerViewController *player = [[MPMoviePlayerViewController alloc] initWithContentURL:nil];
player.view.frame = self.contentView.frame;
player.view.tag = kVideoView;
[self.contentView addSubview:player.moviePlayer.view];
然后,当我在 tableviewcontroller 中加载该单元格时,我想给它 contentURL,如下所示:
MPMoviePlayerViewController *controller = (MPMoviePlayerViewController *)[cell viewWithTag:kVideoView];
controller.moviePlayer.contentURL = [NSURL URLWithString:postInfo.uri];
return;
这会使应用程序崩溃并出现错误:
-[MPMovieView moviePlayer]: unrecognized selector sent to instance
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:当您将player.moviePlayer.view
添加到内容视图时。
因此,在检索时,您将获得对 player.moviePlayer.view
的引用,而不是 MPMoviePlayerViewController
。
我的建议是不要创建多个 MPMoviePlayerViewController
实例。您可以在带有特定视频快照的单元格上添加一些UIButton
或UIImageView
。只有在播放时,您才能创建MPMoviePlayerViewController
实例并播放您的视频
【讨论】:
我知道这就是正在发生的事情,我只是想知道如何解决它:) 解决方法是按照 Bhumeshwer katre 所说的去做。不要将电影加载到每个单元格中。只需加载一个有代表性的 UIImage 或播放图标。然后,当您的用户点击它时,您可以创建一个新的 MPMoviePlayerController 来播放您的电影。如果您想在每个表格行单元格中播放电影流(我认为这不是一个好主意),那么您最好看看 AVPlayer。 很好的答案,谢谢!我正在做类似的事情。我在每个单元格中创建了一个MPMoviePlayerViewController
的实例,但它的运行肯定没有我想要的那么顺利。
@SuperKevin 我已经在每个单元格上创建了 playImage 现在我想知道如何将 MPMoviePlayerViewController
设置为 collectionView 以及何时按下播放视频?以上是关于自定义单元格中的 MPMoviePlayerViewController的主要内容,如果未能解决你的问题,请参考以下文章