Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

ListPlay

fengxing edited this page Sep 27, 2018 · 3 revisions

在列表中播放视频,如果没有多个视频同时播放的需求,为每一个视频创建一个SuperPlayerView并不高效。建议使用一个播放器,在切换的时候修改fatherView来达到切换视频效果。

示例代码

  1. 在controller中创建一个播放器实例
self.superPlayer = [[SuperPlayerView alloc] initWithFrame:CGRectZero];

创建后不使用,到播放时再设置父view。

  1. 当在某个cell上播放时,设置faterView到改cell上,调用playWithModel即可播放
- (void)cellStartPlay:(TXWeiboListTableViewCell *)cell
{
 TXWeiboListTableViewCell *tempCell = nil;
 tempCell = [self.tableView cellForRowAtIndexPath:self.tempIndexPath];
 tempCell.playButton.hidden = NO;
 
 self.tempIndexPath = [self.tableView indexPathForCell:cell];
 tempCell = (TXWeiboListTableViewCell *)cell;
 self.superPlayer.fatherView = cell.contentView;
 SuperPlayerModel *model = [SuperPlayerModel new];
 model.appId = 1252463788;
 model.fileId = self.fileIdArray[[self.tempIndexPath row]];
 [self.superPlayer playWithModel:model];
 tempCell.playButton.hidden = YES;
}
  1. 当cell不可见时,调用resetPlayer停止播放
- (void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
 if (self.superPlayer.fatherView == cell.contentView) {
 self.superPlayer.fatherView = nil;
 }
}
  1. 退出时,销毁SuperPlayer
- (void)didMoveToParentViewController:(nullable UIViewController *)parent
{
 if (parent == nil) {
 [self.superPlayer resetPlayer];
 }
}

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /