我的iOS应用中有一个简单的页面,其中有一个UIWebView
。 UIWebView
应该加载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)
}
}
答案 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()
}