webentwicklung-frage-antwort-db.com.de

Wie kann ich ein Youtube-Video in meine App einbetten?

Ich versuche, einen Video-Player für meine Swift-App zu erstellen, erhalte aber weiterhin den Fehler "Nicht aufgelöster Bezeichner AVPlayerViewController". Was vermisse ich? 

Ich bin ein Anfänger in diesem Bereich, ich muss vielleicht ein paar tausend Mal im Sinne von Laien fragen. Ich habe jetzt vielleicht einen Tag lang im Internet nach einem Video gesucht, um zu sehen, wie man ein Youtube-Video in meine App einbettet, und zwar ohne Ergebnis. Wenn Sie mich auf ein Tutorial verweisen könnten, wäre das großartig!

Vielen Dank!

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

Verwenden Sie YouTube-Player-iOS-Helper :

Schritt 1: Fügen Sie pod 'youtube-ios-player-helper', '0.1.4' zu Ihrem Podfile hinzu und führen Sie pod install aus.

Schritt 2: Implementiere diesen 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()
    }
}

Hinweis: Setzen Sie den Schlüssel rel in Ihrem playerVars-Wörterbuch auf 0, wenn Sie kein zugehöriges Video anzeigen möchten:

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

5
javimuu

Swift 3/4

Sie können Youtube-Videos im AVPlayer mit Hilfe von XCDYouTubeKit abspielen.

Hinzufügen 

pod 'XCDYouTubeKit'

in Ihr Projekt und schreiben Sie einen Code wie folgt 

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

sie können die Videoqualität ändern, indem Sie XCDYouTubeVideoQuality. HD720 . rawValue durch medium360 oder durch Small240 ersetzen.

2
Chetan

Ich habe es mit dem folgenden Code in der Swift 4+ Version gemacht

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

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

Hinweis: - Ich habe SafariServices lib importiert

1
Prasanna

Swift 4 für iOS12 sollten Sie das "WebKit" -Modul importieren 

Machen Sie einen Auslass für WKWebView. Verwenden Sie folgende Funktion, die Sie in viewDidLoad () aufrufen sollten:

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

Für ein Argument videoCode in der Funktion getVideo sollten Sie die videoID verwenden. Ich mache es auf den folgenden Beispiellink: https://www.youtube.com/watch?v=gI3pz7eFgfo & t = 838s

0
Ivan Obodovskiy

Youtube-Video in Swift abspielen 4.1

Pod-Pod 'XCDYouTubeKit' hinzufügen

importieren Sie XCDYouTubeKit in 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