如何在tvOS上播放Vimeo内容

时间:2015-09-16 04:32:39

标签: vimeo tvos

类似于this question询问如何在tvOS上播放YouTube视频,我想在我建立的应用中播放Vimeo视频。但是,as explained here,常规网络视图(我在iOS中的工作方式)已经完成。

假设我知道视频页面的URL而不知道原始.mp4文件的URL,我将如何在tvOS上播放Vimeo视频?

3 个答案:

答案 0 :(得分:3)

嗯,显然,没有办法在WebView中播放Vimeo视频,因为tvOS SDK没有WebView。 我们唯一的选择是AVPlayer,但它需要一个直接的视频网址,Vimeo不会免费提供直接的视频网址。 目前,唯一可行的方法是购买Vimeo的PRO会员资格(目前每年199美元),并通过Vimeo的API检索直接视频网址。

编辑:正如nickv2002所指出的,这种方法只会为您提供您自己的视频的直接网址。这意味着,即使使用Vimeo PRO,您也无法在Vimeo上拍摄任何视频并获得直接网址。

答案 1 :(得分:2)

使用此pod,tvOS可播放vimeo内容, 安装

  

pod'YTVimeoExtractor'

 import YTVimeoExtractor

并使用此功能播放视频

func playVimeoVideo(videoId: String)
{
    YTVimeoExtractor.shared().fetchVideo(withVimeoURL: "https://vimeo.com/video/\(videoId)", withReferer: nil) { (video:YTVimeoVideo?, error:Error?) in

        if let streamUrls = video?.streamURLs
        {
            var streamURL: String?
            var streams : [String:String] = [:]
            for (key,value) in streamUrls {

                streams["\(key)"] = "\(value)"
                print("\(key) || \(value)")
            }

            if let large = streams["720"]
            {
                streamURL = large
            }
            else if let high = streams["480"]
            {
                streamURL = high
            }
            else if let medium = streams["360"]
            {
                streamURL = medium
            }
            else if let low = streams["270"]
            {
                streamURL = low
            }

            if let url = streamURL
            {
                let videoURL = NSURL(string: url)
                let player = AVPlayer(url: videoURL! as URL)
                let playerViewController = AVPlayerViewController()
                playerViewController.player = player
                self.present(playerViewController, animated: true) {
                    playerViewController.player!.play()
                }
            }
        }
    }
}

答案 2 :(得分:-4)

您可以使用AVPlayer播放视频,就像在iOS上一样。

AVPlayer Documentation