Xcode Swift 在本机视频播放器上播放 youtube 视频?

Posted

技术标签:

【中文标题】Xcode Swift 在本机视频播放器上播放 youtube 视频?【英文标题】:Xcode Swift play youtube video on Native video player? 【发布时间】:2017-08-29 13:57:13 【问题描述】:

我正在寻找 swift 上的 pod,以便在 ios 原生播放器上播放 Youtube 视频,就像 XCDYouTubeKit 不幸的是,XCDYouTubeKit 仅适用于 Objective-C 我找不到任何像这样的 swift pod 工作,所有我发现他们嵌入了 iframe 视频,并且会出现 youtube 徽标,这将允许用户单击它并在整个页面打开时错过页面。

如何在 ios 原生 video 播放器上播放 youtube 视频?没有 html 嵌入!

一模一样:

【问题讨论】:

只是一个旁注。这违反了 YouTube 政策,也会让您的应用被拒绝。这是您被允许显示视频的唯一方式:developers.google.com/youtube/v3/guides/ios_youtube_helper。您的问题与 SO 无关。 @user5890979 我的应用在商店中已超过 1 年,但仍未被拒绝或暂停 【参考方案1】:

虽然 XCDYouTubeKit 是用 Objective-C 编写的,但它与 Swift 集成得很好。下面是一些用于 Swift 3 的示例代码:

struct YouTubeVideoQuality 
    static let hd720 = NSNumber(value: XCDYouTubeVideoQuality.HD720.rawValue)
    static let medium360 = NSNumber(value: XCDYouTubeVideoQuality.medium360.rawValue)
    static let small240 = NSNumber(value: XCDYouTubeVideoQuality.small240.rawValue)


func playVideo(videoIdentifier: String?) 
    let playerViewController = AVPlayerViewController()
    self.present(playerViewController, animated: true, completion: nil)

    XCDYouTubeClient.default().getVideoWithIdentifier(videoIdentifier)  [weak playerViewController] (video: XCDYouTubeVideo?, error: Error?) in
        if let streamURLs = video?.streamURLs, let streamURL = (streamURLs[XCDYouTubeVideoQualityHTTPLiveStreaming] ?? streamURLs[YouTubeVideoQuality.hd720] ?? streamURLs[YouTubeVideoQuality.medium360] ?? streamURLs[YouTubeVideoQuality.small240]) 
            playerViewController?.player = AVPlayer(url: streamURL)
         else 
            self.dismiss(animated: true, completion: nil)
        
    

【讨论】:

非常感谢,你让我开心:) @0xced 不播放来自 youtube url 的所有视频,给出错误 XCDYouTubeVideoErrorDomain -2。

以上是关于Xcode Swift 在本机视频播放器上播放 youtube 视频?的主要内容,如果未能解决你的问题,请参考以下文章

我想在我的 ios 应用程序中播放在线视频,我正在使用 Swift3 + xcode [重复]

Swift:在avqueueplayer中播放完毕后重播视频

如何使用 Swift 播放本地视频?

如何在本机播放器中播放 HTML 5 视频?

Swift 2 AVPlayer - 播放下一个视频 上一个视频

在 IOS 9 上使用 AVPlayer 和 Swift 反向播放视频