2017-01-06 187 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() 
}