首页 > 解决方案 > Swift: Parse does not load a video from URL

问题描述

I am trying to stream a video from backend to my device.I have a video url from backend but screen displays nothing. However, youtube url it works. Can anyone guide me why this video is not playing and how can it be played? I am using pod 'YouTubePlayer' to play the video.

 let cell: VideoTableViewCell = tableView.dequeueReusableCell(withIdentifier: "VideoTableViewCell") as! VideoTableViewCell
    var query = PFQuery(className:"Videos")

   query.getObjectInBackground(withId: "83kli72i62") { (parseObject, error) -> Void in
      let videoFile = parseObject!["Question"] as! PFFileObject
      self.videoUrl = videoFile.url
    let url = NSURL(string: self.videoUrl! )
    cell.playerView.loadVideoURL(url as! URL)

    }

 

标签: swiftparse-platformpfobjectpffilepbjvision

解决方案


我有一个应用程序从 firebase 提取视频并使用 avplayer 播放它们,请查看下面的代码并了解它是如何工作的

class IsoLateralLowRowViewController: UIViewController {
    @IBOutlet weak var playv: UIButton!
    
  
    let avPlayerViewController = AVPlayerViewController()
    var avPlayer:AVPlayer?


    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.addBackground()
      
        let movieUrl:NSURL? = NSURL(string: "https://firebasestorage.googleapis.com/v0/b/messenger-test-d225b.appspot.com/o/test%2FTestVideo.mov?alt=media&token=bd4ccba3-b446-43bc-809e-b1152aa3c2ff")
        if let url = movieUrl {
        self.avPlayer = AVPlayer(url: url as URL)
        self.avPlayerViewController.player = self.avPlayer
        }
        NotificationCenter.default.addObserver(self, selector: #selector(playerDidFinishPlaying), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: avPlayerViewController.player?.currentItem)
        
        
        self.present(self.avPlayerViewController, animated: true) { () -> Void in
                self.avPlayerViewController.player?.play()        // Do any additional setup after loading the view.
        }
    }
    
    @objc func playerDidFinishPlaying(note: NSNotification) {
            self.avPlayerViewController.dismiss(animated: true)
        }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()

    }
   

推荐阅读