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



我的iOS应用程序中有一个简单的页面,其中包含一个UIWebViewUIWebView应该加载Youtube视频。问题是当我转到页面时,webview加载了正确的视频预览,但是当我单击播放按钮时,没有任何反应。我看了一堆关于这个主题的教程和YouTube视频,看着它们,它并没有看到我做错了什么。我想知道是否需要对 plist 生活设置一些权限,即使我在任何地方都没有找到任何参考。 我的应用程序在 Xcode 7.3 上,swift 2。请帮忙。这是我的视图控制器的代码:

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

}

有时视频无法播放,因为许多视频仅限于在第三方应用程序中播放。 这些视频只能在原生Youtube上播放。 所以..

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

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

如果您不介意显示实际的YouTube视频页面(我的意思是不是自己的视频嵌入),则可以在Web视图中加载youtube URL:

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

除此之外,我认为您可以尝试一下Youtube IFrame API,它使用一个小的javascript来渲染iframe并相应地设置操作(您可能需要将示例中给出的整个HTML添加到Web视图中才能使其工作)。

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

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

self.myVid.mediaPlaybackRequiresUserAction = false

因此,我从另一个论坛找到了帮助,并被引导到"youtube-ios-player"。它的 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视频加载并完美播放。

最新更新