2017-09-17 12 views
0

Je souhaite utiliser la fonctionnalité de lecture en différé (pour les vidéos en direct) dans le lecteur iOS, mais je n'ai trouvé aucune bibliothèque prenant en charge la fonction Timeshifting. J'ai lu des documents de beaucoup de bibliothèques comme celles-ci:Comment utiliser la fonctionnalité HLS Timeshifting dans iOS (AVFoundation ou d'autres bibliothèques tierces) comme ExoPlayer dans Android?

1- piemonte 2- kaltura

Dans Android, Google qui nous introduisons ExoPlayer cette fonctionnalité facilement donner. Comment puis-je implémenter cette fonctionnalité dans iOS (par swift)? ou y a-t-il une bibliothèque qui l'applique?

+0

voulez-vous mettre en œuvre le streaming lecteur vidéo? – Yuyutsu

+0

@Yuyutsu non, il suffit d'ajouter ces fonctionnalités au Media Player –

Répondre

1

Essayez ceci:

 @IBOutlet weak var liveView: UIView! //Add `UIView` on your ViewController and create @IBOutlet for it. 
     var player = AVPlayer() 
     let playerViewController = AVPlayerViewController() 
     override func viewDidLoad() { 
      player = AVPlayer(url: URL(string:"Your_HLS_URL")!) 
      playerViewController.player = self.player 
      playerViewController.player?.play() 
      self.configureChildViewController(childController: self.playerViewController, onView: self.liveView) 

     } 

     func configureChildViewController(childController: UIViewController, onView: UIView?) { 
      var holderView = self.view 
      if let onView = onView { 
       holderView = onView 
      } 
      addChildViewController(childController) 
      holderView?.addSubview(childController.view) 
      constrainViewEqual(holderView: holderView!, view: childController.view) 
      childController.didMove(toParentViewController: self) 
     } 

     func constrainViewEqual(holderView: UIView, view: UIView) { 
      view.translatesAutoresizingMaskIntoConstraints = false 
      //pin 100 points from the top of the super 
      let pinTop = NSLayoutConstraint(item: view, attribute: .top, relatedBy: .equal, 
              toItem: holderView, attribute: .top, multiplier: 1.0, constant: 0) 
      let pinBottom = NSLayoutConstraint(item: view, attribute: .bottom, relatedBy: .equal, 
               toItem: holderView, attribute: .bottom, multiplier: 1.0, constant: 0) 
      let pinLeft = NSLayoutConstraint(item: view, attribute: .left, relatedBy: .equal, 
              toItem: holderView, attribute: .left, multiplier: 1.0, constant: 0) 
      let pinRight = NSLayoutConstraint(item: view, attribute: .right, relatedBy: .equal, 
               toItem: holderView, attribute: .right, multiplier: 1.0, constant: 0) 

      holderView.addConstraints([pinTop, pinBottom, pinLeft, pinRight]) 
     }