在 UITableview 单元格中播放视频
Playing a video in an UITableview cell
我正在尝试使用 MPMovieplayerController
在 UITableview
单元格中播放视频。我在滚动视图委托 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 解决了这个问题。
我正在尝试使用 MPMovieplayerController
在 UITableview
单元格中播放视频。我在滚动视图委托 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 解决了这个问题。