我使用 tableview 在同一单元格中添加了一些视频。每个单元格都有自己的 webview。使用以下代码在 webview 中播放视频
NSString *embedHTML = @"<html><head>\<style type=\"text/css\">\body {\background-color:transparent;\color: white;\}\</style>\<script>\function load({document.getElementById(\"yt\").play();}\</script>\</head><body onload=\"load()\"style=\"margin:0\">\<video id=\"yt\" src=\"%@\" \width=\"%0.0f\" height=\"%0.0f\" autoplay controls></video>\</body></html>";
NSString *html = [NSString stringWithFormat:embedHTML, urlString, videoView.frame.size.width, videoView.frame.size.height,thumbnailImageLink];
[videoView loadHTMLString:html baseURL:nil];
它工作得很好。它显示带有播放按钮的缩略图视频。点击播放按钮以全屏模式打开视频播放器,其中包含所有控件。
现在的主要问题是当我按下完成按钮时,全屏模式消失了嗯,正如预期的那样
但视频的下载仍在继续。一点都不好
所以说,我打开了 Video1 然后我按了完成按钮,然后我打开了 video2 但是因为 video1 仍在下载,所以 video2 的互联网速度越来越慢。
所以问题是,当全屏上的完成按钮被按下时,是否有办法强制停止下载?
注意:有一个视频列表,即n 个视频 = n 个网络视图,因此无法检测到哪个网络视图正在播放视频。如果我能够访问 webview,那么我会重新加载它,这样下载就可以停止,它会获得新的内容,直到我点击缩略图才会开始。
更具体地说,我可以在播放视频和按下完成按钮时访问
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoPlayStarted:) name:@"UIMoviePlayerControllerDidEnterFullscreenNotification" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoPlayFinished:) name:@"UIMoviePlayerControllerDidExitFullscreenNotification" object:nil];
并且可以通过
BOOL isVideoInFullScreenMode;
-(void)videoPlayStarted:(NSNotification *)notification{
//Your stuff here
isVideoInFullScreenMode = YES;
}
-(void)videoPlayFinished:(NSNotification *)notification{
//Your stuffs here
isVideoInFullScreenMode = NO;
}