在 UITableview 单元格中播放视频

Playing a video in an UITableview cell

我正在尝试使用 MPMovieplayerControllerUITableview 单元格中播放视频。我在滚动视图委托 scrollViewDidScroll 中调用视频播放功能,当它滚动到一个可见的矩形时。

我为此使用了以下代码:

- (void)scrollViewDidScroll:(UIScrollView *)aScrollView {

    CGPoint offset = aScrollView.contentOffset;
    CGRect bounds = aScrollView.bounds;
    CGSize size = aScrollView.contentSize;
    UIEdgeInsets inset = aScrollView.contentInset;
    float y = offset.y + bounds.size.height - inset.bottom;
    float h = size.height;
    /*
     NSLog(@"offset: %f", offset.y);
     NSLog(@"content.height: %f", size.height);
     NSLog(@"bounds.height: %f", bounds.size.height);
     NSLog(@"inset.top: %f", inset.top);
     NSLog(@"inset.bottom: %f", inset.bottom);
     NSLog(@"pos: %f of %f", y, h);
     */

    if(offset.y - 100 > bounds.size.height/2 && !playLock)
    {

        [self performSelectorOnMainThread:@selector(startPlayingVideo) withObject:nil waitUntilDone:YES];
        playLock = YES;
    }
}

但是只有当我从屏幕上移开手指后视频才开始播放。我想在不松开手指的情况下播放视频(类似于 vine 应用程序)。当我在视图中触摸期间检查 MPMoviePlayer 状态时,它总是下降到停止状态。

只有从屏幕上移开触摸后才会开始播放。有什么正确的方法可以做到这一点吗?

通过用 AVPlayer 替换 MPMoviePlayer 解决了这个问题。