gpt4 book ai didi

ios - iOS 中的自定义 View 类未调用委托(delegate)事件

转载 作者:行者123 更新时间:2023-11-30 13:47:32 28 4
gpt4 key购买 nike

我正在尝试使用

播放 YouTube 视频

Swift-Youtube-Player

目前我遇到了委托(delegate)方法未被调用的问题。

我已经创建了从 IB 到该播放器的导出,但由于某种原因我无法将委托(delegate)从 IB 拖动到 View Controller ,因此我尝试在代码中执行此操作。

这是我尝试过的:

@IBOutlet weak var youtubePlayer: YouTubePlayerView!

var _currentYoutubeId: String = "";

override func viewDidLoad() {
super.viewDidLoad()
print(_currentYoutubeId)
youtubePlayer.delegate = self
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

func playerReady(videoPlayer: YouTubePlayerView) {
print(videoPlayer)
if youtubePlayer.ready {
youtubePlayer.playerVars = [
"playsinline": "1",
"controls": "0",
"showinfo": "0"
]
youtubePlayer.loadVideoID(_currentYoutubeId)
if youtubePlayer.playerState != YouTubePlayerState.Playing {
youtubePlayer.play()
} else {
youtubePlayer.pause()
}
}

}

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

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

我正在最新的 XCode 版本中执行此操作,并且我对 iOS、Swift 和 Apple 相关的所有内容都很陌生。

具体来说,我的问题是如何将此委托(delegate)连接到播放器以便调用其生命周期方法?

编辑:我之前已经使用 UICollectionViewDelegate 成功做到了这一点,但我还没有成功使用这个自定义 View 。

最佳答案

这就是我使用 Swift-Youtube-Player 的方式。

class videoController: UIViewController, YouTubePlayerDelegate {
@IBOutlet var videoPlayer: YouTubePlayerView!
var videoID: String?

override func viewDidLoad() {
super.viewDidLoad()

videoPlayer.delegate = self

if let videoID = self.videoID {
videoPlayer.loadVideoID(videoID)
}
}

func playerReady(videoPlayer: YouTubePlayerView) {
videoPlayer.play()
}

func playerStateChanged(videoPlayer: YouTubePlayerView, playerState: YouTubePlayerState) {
if videoPlayer.playerState == YouTubePlayerState.Ended || videoPlayer.playerState == YouTubePlayerState.Paused {
//Your code here
}
}

func playerQualityChanged(videoPlayer: YouTubePlayerView, playbackQuality: YouTubePlaybackQuality) {
//Your code here
}

}

关于ios - iOS 中的自定义 View 类未调用委托(delegate)事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34733450/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com