通过HTML打开的全屏播放器即使按下也不会停止下载

时间:2012-10-02 11:25:27

标签: iphone ios html5 uiwebview

我使用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然后按下Done按钮,然后我打开了video2但是因为video1仍在下载,所以video2的上网速度越来越慢。

所以问题是,当按下全屏上的完成按钮时,有没有强行停止下载?

注意:有一个视频列表,即 n videos = n webviews 因此无法检测播放视频的网页视图。如果我能够访问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;
}

1 个答案:

答案 0 :(得分:1)

您无法控制网页视图中发生的情况。 我认为这是一个设计问题。 Webview并不是所有人的神奇疗法。如果要控制代码,则需要自己编写代码。 我也希望你用苹果(http://bugreporter.apple.com)对此进行窃听。