2017-01-06 227 views
0

我有一個簡單的頁面在我的iOS應用程序有一個UIWebViewUIWebView應該加載Youtube視頻。問題是當我轉到頁面時,webview加載了正確的視頻預覽,但是當我點擊播放按鈕時,沒有任何反應。我看了一大堆關於這個主題的教程和youtube視頻,看着他們,並沒有看到我做錯了什麼。我想知道是否需要爲plist生活設置一些權限,儘管我沒有在任何地方找到任何參考。 我的應用程序在Xcode 7.3上,swift 2.請幫忙。這裏是我的ViewController代碼:Swift iOS Youtube嵌入式視頻不玩

import UIKit 

class watchVideoVC: UIViewController, UIWebViewDelegate { 



    @IBOutlet weak var myVid: UIWebView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let myURL = "https://youtube.com/embed/tVjv8I0BlU4" 
     self.myVid.allowsInlineMediaPlayback = true 
     let fbor = "0" 
     let height = myVid.frame.height 
     let width = myVid.frame.width 
     let code:NSString = "<iframe src=\(myURL) width=\(width) height=\(height) frameborder=\(fbor) allowfullscreen></iframe>" 
     self.myVid.loadHTMLString(code as String, baseURL: nil) 
     } 

}

回答

0

如果你不介意顯示實際的YouTube視頻頁面(不是自己的視頻嵌入,我的意思),你可以加載YouTube網址在網頁視圖:

self.myVid.loadRequest(NSURLRequest(URL: NSURL(string:myUrl)!))

除此之外,我想你可能會給一個嘗試Youtube的IFrame的API,它使用一個小型的JavaScript渲染的iframe並設置相應的動作(你可能有添加整個HTML giv在示例中的Web視圖使其工作)。

https://developers.google.com/youtube/iframe_api_reference

最後,如果你希望視頻自動啓動,你可能會很可能添加以下allowsInlineMediaPlayback

self.myVid.mediaPlaybackRequiresUserAction = false

+0

謝謝。我確實希望將其製作爲嵌入式視頻,因爲會在頁面中添加其他操作和標籤。關於iframe_api,我不太清楚如何在Swift中實現js。我需要對此做一些研究。 – Tan

0

所以,我發現從另一個論壇的幫助,並引導到「YouTube的-ios玩家」。它的gihub鏈接是https://github.com/youtube/youtube-ios-player-helper github鏈接有一些過時的說明,因爲它使用的是Objective C而不是Swift。但我也從YouTube視頻中獲得了幫助,解釋瞭如何在Swift 2中使用「youtube-ios-player-helper」。該視頻的鏈接是:https://www.youtube.com/watch?v=WAAZJm6H9Ms 而不是使用CocoaPods,我使用手動方法複製文件。如何做到這一點的細節在上面提到的youtube視頻中以及在github鏈接中進行了解釋。 使用這個「youtube-ios-player-helper」,我的嵌入式youtube視頻加載並完美播放。

0

有時候視頻沒有播放,因爲很多視頻都限制在第三方應用中播放。這些視頻只能在本地Youtube上播放。所以..

將下面的代碼添加到你的swift文件中。它會提示本地錯誤信息

player.delegate = self 
func playerViewDidBecomeReady(_ playerView: YTPlayerView) 
{ 
    playerView.playVideo() 
}