2016-01-20 158 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)