2015-10-16 4 views
6

Я пытаюсь создать видеопроигрыватель для моего приложения Swift, но я продолжаю получать ошибку «неразрешенный идентификатор AVPlayerViewController». Что мне не хватает?Как вставить видео Youtube в мое приложение?

Я новичок в этом, мне, возможно, придется несколько раз спрашивать у простых людей. Я прочесываю интернет, возможно, целый день для видео о том, как вставлять видео Youtube в мое приложение без каких-либо результатов. Если бы вы могли указать мне на учебник, который был бы потрясающим!

Спасибо!

+1

Вы импортировали AVKit' в верхней части своего f Иль? – dan

+0

Просто добавлено, что исходное сообщение об ошибке исчезло, заменено на «Невозможно вызвать инициализатор для типа« AVPlayerViewController »с помощью списка аргументов типа« (contentURL: NSURL) »и« Использование неразрешенного идентификатора »AVPlayerViewControllerStyleNone » – Dandelyons

+0

Также, как добавить MediaPlayer Framework? – Dandelyons

ответ

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

Я хочу открыть эту ссылку, но мой экран только белый не отображает файл загрузки –

+0

@GauravPatel Просто создайте новый проект и добавьте, что код там. Я только что протестировал его здесь, и он отлично работает Xcode 7.3.1 (версия AppStore) –

2

Использование YouTube-Player-iOS-Helper:

Шаг 1: добавить pod 'youtube-ios-player-helper', '0.1.4' на ваш Подфайл и запустить 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() 
    } 
} 

Примечание: Установите rel ключ 0 в вашем playerVars словаре, если вы не хотите, чтобы показать связанное видео:

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

Смежные вопросы