gpt4 book ai didi

ios - 在 UITableViewCell 中播放视频

转载 作者:可可西里 更新时间:2023-11-01 04:08:55 26 4
gpt4 key购买 nike

我正在尝试在单元格中播放视频而不是全屏视频显示。为此,我正在使用 MPMoviePlayerController

我已经定义

MPMoviePlayerController *moviePlayer;

在实现部分

然后在 cellForRowAtIndexPath:

我这样做

cell = [tableView dequeueReusableCellWithIdentifier:simpleTableVideoIdentifier];

if (cell == nil){
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableVideoIdentifier];
}
NSDictionary *dictionary = [dataArray objectAtIndex:indexPath.section];
NSDictionary *data = dictionary;
if ([data[@"type_of_post"] isEqualToString:@"video"]) {
NSString *path = data[@"video"];
NSURL *videoURL = [NSURL URLWithString:path];
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:videoURL];
[moviePlayer setControlStyle:MPMovieControlStyleNone];
moviePlayer.scalingMode = MPMovieScalingModeAspectFit;
[moviePlayer.view setFrame:CGRectMake(10.0, 0.0, 300.0 , 400.0)];
[cell addSubview:moviePlayer.view];
moviePlayer.view.hidden = NO;
[moviePlayer prepareToPlay];
[moviePlayer play];
}else{
//do something else
}

显然我在 heightForRowAtIndexPath:

中给它分配了一个高度

但它作为 MPMoviePlayerController *moviePlayer; 的点是全局定义的,它不仅仅停留在它的单元格上,而是在我向下滚动时不断下降。除了我所描述的之外,我不确定还有什么其他方法可以实现这一点,这显然不是正确的方法。如果有人能指导我正确的方向,我将不胜感激。

谢谢

最佳答案

永远不要向单元格添加 subview :

[cell addSubview:moviePlayer.view];

仅将其添加到 contentView:

[cell.contentView addSubview:moviePlayer.view];

您犯的另一个大错误是您忘记了可以重复使用此单元格;当用户滚动时,该单元格将用于表格的不同行。所以它得到了重用,现在电影播放器​​ View 仍在其中,即使现在这是表格的错误行。您不仅需要将电影播放器​​ View 添加到正确的单元格中,还需要将其从所有错误的单元格中删除(在else你的代码的一部分)。

关于ios - 在 UITableViewCell 中播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15754933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com