现在我们该如何在iOS设备上播放YouTube视频?

3

我正在参加一个在线课程,学习如何从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

按钮按下后的屏幕截图

enter image description here

更新的代码

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

}

2
UIWebView的文档告诉你用什么替代它。 - rmaddy
使用这个 https://github.com/malkouz/youtube-ios-player-helper-swift 来辅助播放 YouTube 视频。 - Harshad Patel
1个回答

3
以下是关于 WKWebView 的解决方案:
由于 YouTube 具有在 Web 视图中加载任何视频并使用格式为 https://www.youtube.com/embed/<videoId> 的 URL 以全屏方式显示而不使用滚动功能的功能。
上面给出的视频 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)
}

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


你如何能够自动播放视频? - Luis F Ramirez
啊哈,你正在尝试使用AutoPlay。请检查新代码: - excitedmicrobe
我是一名全职的代码导师,很乐意为您解决这个问题。如果可以的话,请在Skype上联系我(rawandahmad10@outlook.com),我会立即解决这个问题。 - excitedmicrobe
不用了,我可以使用电子邮件联系您。请提供您的电子邮件地址。如果可能的话,请附上您的项目。我会使用AVPlayer来解决它。 - excitedmicrobe
请告诉我你是否已经理解了。 - Luis F Ramirez
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接