XCDYouTubeClient 不在 Swift 4 中播放视频

Posted

技术标签:

【中文标题】XCDYouTubeClient 不在 Swift 4 中播放视频【英文标题】:XCDYouTubeClient Not playing Video in Swift 4 【发布时间】:2020-01-04 07:44:12 【问题描述】:

我正在尝试通过 XCDYouTubeClient 库播放 youtube 视频,但它不播放视频。我还参考了文档,但它没有帮助我解决问题

let playerViewController = AVPlayerViewController()
self.present(playerViewController, animated: true, completion: nil)

XCDYouTubeClient.default().getVideoWithIdentifier("tG7vx7-3sl0")  [weak playerViewController] (video: XCDYouTubeVideo?, error: Error?) in
      if let streamURLs = video?.streamURLs, let streamURL = (streamURLs[XCDYouTubeVideoQualityHTTPLiveStreaming] ?? streamURLs[XCDYouTubeVideoQuality.HD720] ?? streamURLs[XCDYouTubeVideoQuality.medium360] ?? streamURLs[XCDYouTubeVideoQuality.small240]) 
           playerViewController?.player = AVPlayer(url: streamURL)
       else 
           self.dismiss(animated: true, completion: nil)
       

谢谢

【问题讨论】:

【参考方案1】:

您可以使用以下代码。一些 youtube 链接没有XCDYouTubeVideoQuality.HD720 视频质量。只需将其移除,视频就会开始播放。

XCDYouTubeClient.default().getVideoWithIdentifier("tG7vx7-3sl0")  [weak self] (video, error) in

   if video != nil 
     var streamURLs = video?.streamURLs
     let streamURL = streamURLs?[XCDYouTubeVideoQualityHTTPLiveStreaming] ?? streamURLs?[NSNumber(value: XCDYouTubeVideoQuality.medium360.rawValue)] ?? streamURLs?[NSNumber(value: XCDYouTubeVideoQuality.small240.rawValue)]
     if let streamURL = streamURL 
         playerViewController?.player = AVPlayer(url: streamURL)
     
     playerViewController?.player?.play()

    else 
      self?.dismiss(animated: true)
    

【讨论】:

这不是正确的答案。 XCDYouTubeVideoQuality.HD720 不可用不会产生影响,因为 OP 正在使用可选的展开。

以上是关于XCDYouTubeClient 不在 Swift 4 中播放视频的主要内容,如果未能解决你的问题,请参考以下文章

为啥不在swift 3中将database.db从bundle复制到文档目录? [复制]

如何不在 UICollectionView 中重用单元格 - Swift

Swift 3 尝试呈现其视图不在窗口层次结构中

swift 仅在调试模式下打印。不在发布模式。

警告:尝试在其视图不在窗口层次结构中的 * 上呈现 * - swift

使用 contentsOfFile 方法的 NSDictionary 不在 Swift 中构建