2015-10-16 17 views
6

Ich versuche, einen Video-Player für meine Swift-App zu erstellen, aber ich bekomme immer den Fehler 'nicht aufgelöster Bezeichner AVPlayerViewController'. Was vermisse ich?Wie bette ich ein Youtube-Video in meine App ein?

Ich bin ein Anfänger bei diesem Thema, ich muss vielleicht ein paar tausend Mal in Laien fragen. Ich habe das Internet jetzt vielleicht einen Tag lang nach einem Video durchforstet, um ein Youtube-Video in meine App einzubetten, ohne Ergebnisse. Wenn du mich auf ein Tutorial hinweisen könntest, das großartig wäre!

Danke!

+1

Haben Sie 'AVKit' an der Spitze Ihres f importiert? Ile? – dan

+0

Gerade hinzugefügt, dass die ursprüngliche Fehlermeldung weg ist, ersetzt durch "Kann nicht Initialisierer für den Typ 'AVPlayerViewController' mit einer Argumentliste des Typs '(contentURL: NSURL)' und 'Verwendung von nicht aufgelösten Bezeichner'AVPlayerViewControllerStyleNone' – Dandelyons

+0

Auch, wie füge ich das MediaPlayer Framework hinzu? – Dandelyons

Antwort

23

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") 
    } 
    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 
    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") 
    } 
    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 
    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)) 
    } 
} 
+0

https://www.dropbox.com/s/mv0c8oetzn4bmyy/webView.zip?dl=0 –

+0

Ich möchte diesen Link öffnen, aber mein Bildschirm nur weiß keine Download-Datei anzeigen –

+0

@GauravPatel Erstellen Sie einfach ein neues Projekt und fügen Sie das hinzu Code dort. Ich habe es gerade hier getestet und es funktioniert gut Xcode 7.3.1 (AppStore-Version) –

2

Verwendung YouTube-Player-iOS-Helper:

Schritt 1: add pod 'youtube-ios-player-helper', '0.1.4' zu Ihrem Podfile und pod install ausführen.

Schritt 2: Implementieren Sie 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: Stellen Sie den rel Schlüssel zum 0 in Ihrem playerVars Wörterbuch, wenn Sie ähnliche Video nicht zeigen wollen:

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

Verwandte Themen