【问题标题】:How can we play YouTube Videos now with iOS?我们现在如何使用 iOS 播放 YouTube 视频?
【发布时间】:2018-11-15 05:59:40
【问题描述】:

我正在参加一门在线课程,该课程展示了如何从 url 播放视频。但它始终是bunny one。我一直在寻找如何播放 YouTube 视频,发现他们使用 UIWebView。既然它已被弃用,我现在怎么能玩它们。这就是我的代码的样子。

import UIKit
import AVKit
import AVFoundation

class CourseDetailVC: UIViewController {
    @IBOutlet weak var descriptionTextView: UITextView!
    @IBOutlet weak var titleLabel: UILabel!
    @IBOutlet weak var authorButton: UIButton!
    @IBOutlet weak var backgroundImage: UIImageView!

    var course: Courses.Course?

    @IBAction func playURLVideo() {
        guard let videoURL = URL(string: course?.videoUrl ?? "") else { return }
        let player = AVPlayer(url: videoURL)
        let playerViewController = AVPlayerViewController()
        playerViewController.player = player
        self.present(playerViewController, animated: true) {
            playerViewController.player!.play()
        }
    }

我只有一个按钮。当我按下它时,我想播放 YouTube 视频。现在这适用于兔子。我怎么能玩这个 YouTube video

按下按钮后的屏幕截图

更新代码

 @IBAction func playButtonPress() {
    // Create Video player
    var mywkwebview: WKWebView?
    let mywkwebviewConfig = WKWebViewConfiguration()

    mywkwebviewConfig.allowsInlineMediaPlayback = true
    mywkwebview = WKWebView(frame: self.view.frame, configuration: mywkwebviewConfig)

    let myURL = URL(string: "https://www.youtube.com/embed/JePnQ1gSagc?playsinline=1?autoplay=1")
    let youtubeRequest = URLRequest(url: myURL!)

    mywkwebview?.load(youtubeRequest)

    guard let webView = mywkwebview else { return }
    self.view.addSubview(webView)

}

【问题讨论】:

标签: ios swift avfoundation


【解决方案1】:

这是WKWebView的解决方案

由于 YouTube 具有使用https://www.youtube.com/embed/<videoId> 格式的 URL 以全屏方式在 web 视图中加载任何视频的功能,而无需任何滚动功能。

上述视频的 ID 为 (https://www.youtube.com/watch?v=1roy4o4tqQM) -- [1roy4o4tqQM]

mywkwebviewConfig.allowsInlineMediaPlayback = true
mywkwebview = WKWebView(frame: self.view.frame, configuration: mywkwebviewConfig)
let myURL = URL(string: "https://www.youtube.com/embed/1roy4o4tqQM?playsinline=1?autoplay=1")
var youtubeRequest = URLRequest(url: myURL!)
mywkwebview.load(youtubeRequest)

更新代码:

@IBAction func playURLVideo() {

  var mywkwebview: WKWebView?
  let mywkwebviewConfig = WKWebViewConfiguration()

  mywkwebviewConfig.allowsInlineMediaPlayback = true
  mywkwebview = WKWebView(frame: self.view.frame, configuration: mywkwebviewConfig)

  let myURL = URL(string: "https://www.youtube.com/embed/1roy4o4tqQM?playsinline=1?autoplay=1")
  var youtubeRequest = URLRequest(url: myURL!)

  mywkwebview.load(youtubeRequest)
}

您需要在嵌入的末尾添加?autoplay=1 URL

【讨论】:

  • 如何自动播放视频?
  • “自动”是什么意思?
  • 当您允许播放器播放时,就像 AVPlayerViewController 一样。例如:plaverViewController.player.play()。所以当我点击按钮时,视频会全屏播放。
  • 查看截图。它显示了我按下按钮后会发生什么。当单击按钮并全屏显示时,我正在尝试播放视频。有可能吗?
  • 啊哈,您正在尝试使用自动播放。检查新代码:
猜你喜欢
  • 1970-01-01
  • 2016-09-22
  • 2015-01-09
  • 2013-02-09
  • 2014-11-02
  • 1970-01-01
  • 2016-04-26
  • 1970-01-01
  • 2014-12-02
相关资源
最近更新 更多