web-dev-qa-db-fra.com

Comment intégrer une vidéo Youtube dans mon application?

J'essaie de créer un lecteur vidéo pour mon application Swift, mais l'erreur d'erreur persiste: "identificateur non résolu AVPlayerViewController". Qu'est-ce que je rate? 

Je suis un débutant dans ce domaine, il se peut que je doive demander plusieurs milliers de fois en termes simples. Cela fait peut-être un jour que je fouille sur Internet pour une vidéo expliquant comment intégrer une vidéo Youtube dans mon application, sans résultat. Si vous pouviez me diriger vers un tutoriel, ce serait génial!

Merci!

11
Dandelyons

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

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) )
    }
}
31
Leo Dabus

Utilisez YouTube-Player-iOS-Helper :

Étape 1: ajoutez pod 'youtube-ios-player-helper', '0.1.4' à votre Podfile et exécutez pod install.

Étape 2: Implémentez ce code: 

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()
    }
}

Remarque: Définissez la clé rel sur 0 dans votre dictionnaire playerVars si vous ne souhaitez pas afficher la vidéo associée:

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

5
javimuu

Swift 3/4

Vous pouvez lire une vidéo youtube dans AVPlayer à l'aide de XCDYouTubeKit.

Ajouter 

pod 'XCDYouTubeKit'

dans votre projet et écrivez un code comme ci-dessous 

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

vous pouvez modifier la qualité de la vidéo en remplaçant XCDYouTubeVideoQuality. HD720 . rawValue par medium360 ou par Small240

2
Chetan

Je l'ai fait en utilisant le code ci-dessous sur la version de Swift 4+

guard let url = URL(string: "<Your YuTube url>")
        else{
            return
        }

let safariViewControllerObject = SFSafariViewController(url: url)
self.present(safariViewControllerObject, animated: true, completion: nil)

Remarque: - J'ai importé SafariServices lib

1
Prasanna

Swift 4 pour iOS12, vous devez importer le module "WebKit" 

Faire un point de vente pour WKWebView. Utilisez la fonction suivante, que vous devriez appeler dans viewDidLoad ():

func getVideo(videoCode: String) {
    let url = URL(string: "https://www.youtube.com/embed/\(videoCode)")
    myWKWebView.load(URLRequest(url: url!))
}

Pour un argument videoCode dans la fonction getVideo, vous devez utiliser le videoID. Je le placerai en bloc sur le lien d'exemple ci-dessous: https://www.youtube.com/watch?v=gI3pz7eFgfo & t = 838s

0
Ivan Obodovskiy

Lire une vidéo sur youtube dans Swift 4.1

Ajouter Pod Pod 'XCDYouTubeKit'

importer XCDYouTubeKit dans ViewController

func playYoutubeVideo(){

    let strUrl = "https://www.youtube.com/watch?v=9m_K2Yg7wGQ"
    if let range = strUrl.range(of: "=") {
            let strIdentifier = strUrl.substring(from: range.upperBound)
            print("Identifier:\(strIdentifier)")
            let videoPlayerViewController = 
            XCDYouTubeVideoPlayerViewController(videoIdentifier: strIdentifier)
            videoPlayerViewController.present(in: viewYTVideo)
            videoPlayerViewController.moviePlayer.play()
        }
}
0
Mahesh Chaudhari