1

I am using a framework to play Youtube videos in Swift: https://github.com/gilesvangruisen/Swift-YouTube-Player. The framework provides delegate methods, but I can't seem to get them to fire. Other people have got it working, so I'm sure the problem is on my end.

import UIKit
import YouTubePlayer

class MainPlayerController: UIViewController, YouTubePlayerDelegate {

@IBOutlet var playerView: YouTubePlayerView!

override func viewDidLoad() {
    super.viewDidLoad()
    let myVideoURL = NSURL(string: "https://www.youtube.com/watch?v=OGe-WXhbmBg")
    playerView.delegate = self
    playerView.loadVideoURL(myVideoURL! as URL)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

@IBAction func play(_ sender: AnyObject) {
    playerView.play()
}


//The 3 functions below will not fire

func playerStateChanged(videoPlayer: YouTubePlayerView, playerState: YouTubePlayerState) {
    print("playerStateChanged")
}

func playerReady(videoPlayer: YouTubePlayerView) {
    print("playerReady")
}

func playerQualityChanged(videoPlayer: YouTubePlayerView, playbackQuality: YouTubePlaybackQuality) {
    print("playerQualityChanged")
}


}

The player works fine and will play. I am trying to get the playerReady() function to work in particular. Any help would be great, thank you.

David T
  • 11
  • 2

1 Answers1

0

"Try adding a underscore before each methods first argument. ie. playerReady(_ videoPlayer:...)" -Viktor Gardart

David T
  • 11
  • 2