如何将Youtube视频嵌入我的应用程序?

Dan*_*ons 14 video uiwebview ios swift swift2

我正在尝试为我的Swift应用程序创建一个视频播放器,但我不断收到"未解析的标识符AVPlayerViewController"的错误.我错过了什么?

我是初学者,我可能要用外行的话来问几千次.我一直在网上搜索可能有一天的视频,如何将Youtube视频嵌入到我的应用程序中,没有结果.如果你能指出一个很棒的教程!

谢谢!

Leo*_*bus 37

Xcode 8.2•Swift 3.0.2

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var wv: UIWebView!
    override func viewDidLoad() {
        super.viewDidLoad()
        loadYoutube(videoID: "oCm_lnoVf08")
    }
    func loadYoutube(videoID:String) {
        guard
            let youtubeURL = URL(string: "https://www.youtube.com/embed/\(videoID)")
            else { return }
        wv.loadRequest( URLRequest(url: youtubeURL) )
    }
}
Run Code Online (Sandbox Code Playgroud)

Xcode 7.3.1•Swift 2.x

import UIKit

class ViewController: UIViewController {
    // create an outlet for your webview 
    @IBOutlet weak var wv: UIWebView!
    override func viewDidLoad() {
        super.viewDidLoad()
        // load your you tube video ID
        loadYoutube(videoID: "oCm_lnoVf08")
    }
    func loadYoutube(videoID videoID:String) {
        // create a custom youtubeURL with the video ID
        guard
            let youtubeURL = NSURL(string: "https://www.youtube.com/embed/\(videoID)")
            else { return }
        // load your web request
        wv.loadRequest( NSURLRequest(URL: youtubeURL) )
    }
}
Run Code Online (Sandbox Code Playgroud)


jav*_*muu 7

使用YouTube-Player-iOS-Helper:

第1步:添加pod 'youtube-ios-player-helper', '0.1.4'到您的Podfile并运行pod install.

第2步: 实现此代码:

import UIKit
import youtube_ios_player_helper

class ViewController: UIViewController, YTPlayerViewDelegate {
    @IBOutlet weak var playerView: YTPlayerView!

    override func viewDidLoad() {
        super.viewDidLoad()
        playerView.delegate = self

        let playerVars = ["playsinline": 1] // 0: will play video in fullscreen
        self.playerView.loadWithVideoId("youtubeId", playerVars: playerVars)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}
Run Code Online (Sandbox Code Playgroud)

注:在设置rel关键0在你的playerVars字典中,如果你不想显示相关视频:

let playerVars = ["playsinline":1, "rel" : 0 ]


Che*_*tan 5

迅捷3/4

您可以借助XCDYouTubeKit在AVPlayer中播放youtube视频。

pod'XCDYouTubeKit'

进入您的项目并编写如下代码

func playVideo() {

        let playerViewController = AVPlayerViewController()
        self.present(playerViewController, animated: true, completion: nil)

        XCDYouTubeClient.default().getVideoWithIdentifier("KHIJmehK5OA") { (video: XCDYouTubeVideo?, error: Error?) in
            if let streamURL = video?.streamURLs[XCDYouTubeVideoQuality.HD720.rawValue] {
                playerViewController.player = AVPlayer(url: streamURL)
            } else {
                self.dismiss(animated: true, completion: nil)
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

您可以通过替换XCDYouTubeVideoQuality来更改视频质量。HD720 .rawValue与medium360Small240