我正在播放视频UITableViewCell
。为此,我使用以下代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *VideoCellIdentifier = @"VideoCell";
NSDictionary *_response_data = [self.response objectAtIndex:indexPath.row];
VideoCustomCell *cell = (VideoCustomCell *) [tableView dequeueReusableCellWithIdentifier:VideoCellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects;
topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"VideoCustomCell" owner:self options:nil];
for (id currentObject in topLevelObjects){
if ([currentObject isKindOfClass:[UITableViewCell class]]){
cell = (VideoCustomCell *) currentObject;
cell.delegate = self;
break;
}
}
}
avPlayer = [[AVPlayer playerWithURL:[NSURL URLWithString:[_response_data valueForKey:@"media_id"]]] retain];
avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:avPlayer];
avPlayerLayer.frame = cell.video_player_view.layer.bounds;
avPlayerLayer.videoGravity = AVLayerVideoGravityResize;
[cell.video_player_view.layer addSublayer: avPlayerLayer];
[avPlayer play];
return cell;
}
视频可以正常播放,但我只想一次只播放一个视频。播放完全可见的单元格的视频。
使用这两种滚动和处理播放视频的方法。当 tableview 停止滚动时,这两个方法都会以任一方式调用
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
if(![scrollView isDecelerating] && ![scrollView isDragging]){
[self playVideo];
}
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
if(!decelerate){
[self playVideo];
}
}
-(void)playVideo
{
if(aryTableData.count==0){
return;
}
for(UITableViewCell *cell in [tblView visibleCells])
{
VideoCell *ccell = (VideoCell*)cell;
CGRect ccellRect = [APP_DEL.window convertRect:ccell.bounds fromView:ccell];
// NSLog(@"--Cell frame %f",ccellRect.origin.y);
//Set Condition of cell visible within some range
if(ccellRect.origin.y>-200)
{
// Handle Video Play
int row = [[tblView indexPathForCell:ccell] row];
NSString *strUrl = [[aryTableData objectAtIndex:row] valueForKey:@"video_url"] ;
[ccell startVideoFromURL:strUrl]; //You can handle video play in cell or table view
}
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)