2016-01-20 175 views
2

我有一个嵌入在UIWebView的YouTube视频。它玩的很好。但是,如果我在不暂停视频的情况下继续使用其他视图控制器,则会继续播放音频。我如何阻止它?如何停止播放YouTube嵌入式视频而无需在网页视图中暂停播放?

代码:

func loadYouTubeVideo() { 

    let youTubeLink: String = "https://www.youtube.com/embed/ac_om5HCjvg" 
    let width = 300 
    let height = 200 
    let frame = 50 
    let html:NSString = "<iframe width=\(width) height=\(height) src=\(youTubeLink) frameborder=\(frame) allowfullscreen></iframe>" 
    self.youTubeWebView.loadHTMLString(html as String, baseURL: nil) 

} 

我需要一个斯威夫特的答案。我已经使用Objective-C的尝试,但它并没有转化除非我做错了:

let script = "var videos = document.querySelectorAll(\"video\"); for (var i = videos.length - 1; i >= 0; i--) { videos[i].pause(); };" 
youTubeWebView.stringByEvaluatingJavaScriptFromString(script) 
+1

[在UIWebView中停止视频]的可能的复制(http://stackoverflow.com/questions/7038100/stop-video-in-uiwebview) – JAL

+0

不幸的是,这些答案不适合我。这可能是它在Objective-C中,而我正在Swift中工作。 – bkwebhero

+0

你是什么意思,他们不工作?你有没有尝试将它们翻译成Swift? – JAL

回答

2

如果您不关心用户在从视图导航后从头开始恢复视频,请让webview加载一个空白页面:

webView.loadHTMLString("<html><head></head><body></body></html>", baseURL: nil) 

如果你这样做,你将不得不再次加载你的视频viewWillAppear

3

试试这个

override func viewWillDisappear(animated: Bool) { 
     webView.loadHTMLString(nil, baseURL: nil) 
    } 

让我知道,如果它

+0

不工作。从Swift 2开始不能传递零。 – bkwebhero

+0

'loadHTMLString'需要一个非可选的字符串HTML字符串,你不能传入nil。 – JAL

0

我用下面的停止我的音乐:

webView.loadHTMLString("", baseURL: nil)