Swift iOS Youtube嵌入式视频无法播放

时间:2017-01-06 02:12:17

标签: ios swift youtube embed

我的iOS应用中有一个简单的页面,其中有一个UIWebViewUIWebView应该加载Youtube视频。问题是当我进入页面时,webview会加载正确的视频预览,但是当我点击播放按钮时,没有任何反应。我看了很多关于这个主题的教程和youtube视频,看着它们,它并没有看到我做错了什么。我想知道是否需要为plist生活设置一些许可,即使我在任何地方都找不到任何参考。  我的应用程序在Xcode 7.3上,swift 2.请帮助。这是我的viewcontroller的代码:

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)
       }

}

3 个答案:

答案 0 :(得分:0)

如果您不介意显示实际的YouTube视频页面(不是我自己嵌入的视频),您只需在网页浏览中加载YouTube网址即可:

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

除此之外,我想您可以试试Youtube IFrame API,它使用一个小的javascript来呈现iframe并相应地设置操作(您可能需要添加在webview的示例使其工作)。

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

最后,如果您希望视频自动启动,您可能会在allowsInlineMediaPlayback下面添加:

self.myVid.mediaPlaybackRequiresUserAction = false

答案 1 :(得分:0)

所以,我从另一个论坛找到了帮助,并被引导到&#34; youtube-ios-player&#34;。它的gihub链接是https://github.com/youtube/youtube-ios-player-helper  github链接有一些过时的指令,因为它使用了Objective C而不是Swift的引用。但我也从youtube视频中获得了帮助,解释了如何使用&#34; youtube-ios-player-helper&#34;使用Swift 2.视频的链接是:https://www.youtube.com/watch?v=WAAZJm6H9Ms    我使用手动方法复制文件,而不是使用CocoaPods。有关如何操作的详细信息,请参阅上面提到的YouTube视频以及github链接。   使用这个&#34; youtube-ios-player-helper&#34;,我的嵌入式YouTube视频加载并播放完美。

答案 2 :(得分:0)

有些时候视频没有播放,因为很多视频都被限制在第三方应用中播放。这些视频只能在原生Youtube中播放。所以..

将以下代码添加到swift文件中。它将提示本机错误消息

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