6

我在使用youtube-ios-player-helperGoogle/YouTube 提供的 pod 自动播放视频时遇到问题。这是我的应用程序的相关部分(iOS 10、Swift 3):

  • 一个 ChannelVideosViewController,它将视频缩略图显示为带有 UITapGestureRecognizer 的 UIViews,它依次连接到我的 PlayerViewController 并从 API 调用传递 videoId
  • 一个 PlayerViewController 如下:

    var youtubePlayerView = YTPlayerView() // player for videos
    var youtubeVideoID = String() // videoId from API passed by ChannelVideosViewController
    
    override func viewDidLoad() {
    // ... skipping UI stuff
    
    view.addSubview(youtubePlayerView)
    youtubePlayerView.load(withVideoId: youtubeVideoID, playerVars: ["autoplay":1,"modestbranding":1,"showinfo":0,"rel":0])
    }
    

使用上面的代码,当我按下“红色大按钮”时,帮助程序库成功加载视频并全屏播放,但我想在进入视图后直接自动播放视频。有没有办法做到这一点?

  • "autoplay":1来自YouTube 文档的内容似乎并没有针对 iOS 进行删减。
  • youtubePlayerView.playVideo()什么都不做
4

2 回答 2

12

遵守YTPlayerViewDelegate这样的协议:

self.youtubePlayer.delegate = self

现在使用这个委托方法在播放器准备好时自动播放视频:

extension ViewController: YTPlayerViewDelegate {
    func playerViewDidBecomeReady(_ playerView: YTPlayerView) {
        self.youtubePlayer.playVideo()
    }
}

它在我的情况下完美运行。

于 2017-02-28T12:06:53.990 回答
2

基于这个github,自动驾驶仪不适用于 iOS 播放器,作为一种解决方法,试试这个:

(void)playerViewDidBecomeReady:(YTPlayerView *)playerView{ [[NSNotificationCenter defaultCenter] postNotificationName:@"Playback started" object:self]; [self.playerView playVideo]; }

有关更多信息,请查看以下线程:

于 2016-09-25T13:59:25.497 回答