【问题标题】:Swift iOS Youtube embedded video not playingSwift iOS Youtube 嵌入式视频不播放
【发布时间】:2017-05-20 18:05:19
【问题描述】:

我的 iOS 应用中有一个简单的页面,其中有一个 UIWebViewUIWebView 应该加载一个 Youtube 视频。问题是当我转到页面时,webview 加载了正确的视频预览,但是当我点击播放按钮时,什么也没有发生。我查看了有关此主题的大量教程和 youtube 视频,并且看着它们,看起来我没有做错任何事情。我想知道是否需要对 plist life 设置一些权限,即使我在任何地方都没有找到任何参考。 我的应用程序在 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)
       }

}

【问题讨论】:

    标签: ios swift youtube embed


    【解决方案1】:

    有时视频无法播放,因为许多视频被限制在 3rd 方应用程序中播放。这些视频只能在原生 Youtube 中播放。所以..

    将以下代码添加到您的 swift 文件中。会提示原生错误信息

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

    【讨论】:

      【解决方案2】:

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

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

      除此之外,我认为您可以尝试使用 Youtube IFrame API,它使用一个小的 javascript 来呈现 iframe 并相应地设置操作(您可能必须将示例中给出的整个 HTML 添加到webview 使其工作)。

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

      最后,如果你想让视频自动启动,你可以在下面添加allowsInlineMediaPlayback

      self.myVid.mediaPlaybackRequiresUserAction = false

      【讨论】:

      • 谢谢。我确实想让它成为嵌入式视频,因为页面中还会添加其他操作和标签。关于 iframe_api,我不太清楚如何在 Swift 中实现 js。我需要对此进行一些研究。
      【解决方案3】:

      所以,我从另一个论坛找到了帮助,并被引导到了“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 视频可以完美地加载和播放。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-14
        • 2018-12-16
        • 1970-01-01
        • 1970-01-01
        • 2012-03-24
        • 1970-01-01
        • 2016-09-30
        相关资源
        最近更新 更多