在UIWebView中停止视频

时间:2011-08-12 09:24:49

标签: iphone objective-c ipad uiwebview

在我的iPad应用程序中,我有一个模态视图(UIViewController,模态显示样式UIModalPresentationPageSheet

视图内部是一个带有HTML页面和嵌入式YouTube视频的UIWebView。如果我启动视频并关闭视图,则视频不会停止。音频继续,您可以在状态栏中的“电池图标”旁边看到一个小“播放图标”。

如何停止视频?

6 个答案:

答案 0 :(得分:36)

请整合以下代码以解决问题。

    -(void)viewWillDisappear:(BOOL)animated
    {
        [webView loadHTMLString:nil baseURL:nil];
    }

答案 1 :(得分:16)

您也可以尝试暂停视频:

NSString *script = @"var videos = document.querySelectorAll(\"video\"); for (var i = videos.length - 1; i >= 0; i--) { videos[i].pause(); };";
[webView stringByEvaluatingJavaScriptFromString:script];

答案 2 :(得分:2)

在Swift方法中:

override public func viewDidDisappear(animated: Bool) {
    super.viewDidAppear(animated)
    self.webView.loadHTMLString("", baseURL: nil)
}

谢谢@alloc_iNit

答案 3 :(得分:2)

Swift 4

//  Halt anything in progress
(contentViewController as! WebViewController).webView.loadHTMLString("Yoink://", baseURL: nil)
当我关闭窗口时,windowController的windowShouldClose()方法需要

答案 4 :(得分:2)

在WKWebview中使用以下javascript迅速暂停视频播放器

wkWebView.evaluateJavaScript("var videos = document.querySelectorAll(\"video\"); for (var i = videos.length - 1; i >= 0; i--) { videos[i].pause(); };", completionHandler: nil)

停止使用视频播放器:

wkWebView.loadHTMLString("", baseURL: nil)

答案 5 :(得分:0)

我看到加载空白页有很多建议。这是非常糟糕的做法。

如果您将其视图推到另一个视图上,则会导致您的网页视图为空白。

最简单的解决方案是使用以下命令重新加载视图:

夫特

webView.reload()

的OBJ-C

[webView reload]