首页 > 解决方案 > 使用 HCVimeoVideoExtractor 播放 Vimeo 视频,无法获取特定质量的视频 URL

问题描述

我正在使用这个库https://github.com/superm0/HCVimeoVideoExtractor来播放 vimeo url。它工作正常,但更改质量不会返回某些视频的 videoURL。我说的是这条线

if let videoURL = vid.videoURL[.Quality1080p] 

我无法理解为什么当我通过 Quality1080p 时它不返回视频的 videoURL?如何解决?我的视频有问题吗?我需要将所有视频转换为相同质量然后上传到 Vimeo 吗?

以下是我的代码:

import UIKit
import HCVimeoVideoExtractor
import AVKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

    }

    @IBAction func playClicked(_ sender: UIButton) {

        guard let url = URL(string: "https://vimeo.com/1234567") else {
            print("Error url nill")
            return
        }

        HCVimeoVideoExtractor.fetchVideoURLFrom(url: url, completion: { ( video:HCVimeoVideo?, error:Error?) -> Void in
            if let err = error {
               print("Error = \(err.localizedDescription)")
               return
            }

            guard let vid = video else {
                print("Invalid video object")
                return
            }

            print("Title = \(vid.title), url = \(vid.videoURL), thumbnail = \(vid.thumbnailURL)")

            if let videoURL = vid.videoURL[.Quality1080p] {

                let player = AVPlayer(url: videoURL)

                DispatchQueue.main.async {
                    let playerController = AVPlayerViewController()
                    playerController.player = player
                    self.present(playerController, animated: true) {
                        player.play()
                    }
                }
            } else {
                print("Error: videoURL not found")
            }
        })
    }
}

标签: iosswiftvideoavplayerviewcontrolleravkit

解决方案


在此处输入图像描述

这是您的视频最后一个数字的计数

videoArr = self.arrFilterItems[indexPath.row].link
last9 = String(videoArr.suffix(9))
var last9 = String() 
here link = https://vimeo.com/(123456789) == 9 or (123456) == 6

推荐阅读