Lecture d'un fichier vidéo à partir d'un serveur en Swift

j'essaie de lire une vidéo à partir d'un serveur utilisant Swift.

j'ai importé MediaPlayer framework, voici mon code:

import UIKit
import MediaPlayer

class VideoViewController: UIViewController {

   override func viewDidLoad() {
        super.viewDidLoad()

        var url:NSURL = NSURL(string: "http://jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v")        
        var moviePlayer = MPMoviePlayerController(contentURL: url)

        moviePlayer.view.frame = CGRect(x: 20, y: 100, width: 200, height: 150)        
        self.view.addSubview(moviePlayer.view)

        moviePlayer.fullscreen = true        
        moviePlayer.controlStyle = MPMovieControlStyle.Embedded        
   }
}

Je n'obtiens une boîte noire que lorsque je cours dans le simulateur, mais aucune vidéo ne passe, peu importe où j'essaie de charger une vidéo.

UPDATE

voici le code actuel

var url:NSURL = NSURL(string: "http://jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v")

var moviePlayer = MPMoviePlayerController(contentURL: url)

moviePlayer.view.frame = CGRect(x: 20, y: 100, width: 200, height: 150)        
moviePlayer.movieSourceType = MPMovieSourceType.File

self.view.addSubview(moviePlayer.view)        
moviePlayer.prepareToPlay()
moviePlayer.play()

Ce code joue de façon intéressante ~2 secondes de vidéo avant de redevenir noir!

25
demandé sur Vadim Kotov 2014-07-30 14:28:17

4 réponses

résolu:

import UIKit
import MediaPlayer

class VideoViewController: UIViewController {

   var moviePlayer:MPMoviePlayerController!

   override func viewDidLoad() {
      super.viewDidLoad()

      let url:NSURL = NSURL(string: "http://jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v")

      moviePlayer = MPMoviePlayerController(contentURL: url)
      moviePlayer.view.frame = CGRect(x: 20, y: 100, width: 200, height: 150)

      self.view.addSubview(moviePlayer.view)
      moviePlayer.fullscreen = true

      moviePlayer.controlStyle = MPMovieControlStyle.Embedded

   }
}
51
répondu Mate Hegedus 2016-05-11 11:58:16
import AVKit
import AVFoundation

class VideoController: UIViewController

override func viewDidLoad()

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


    }
10
répondu shaiju mathew 2017-05-27 23:02:03

j'avais juste les mêmes problèmes..

MPMoviePlayerController stoppes Playing After 5 seconds - Swift

le problème est que votre var moviePlayer est hors de portée. En le déclarant à l'extérieur de viewDidLoad comme @Victor-Sigler l'a fait ci-dessus, vous empêchez le problème de l'écran noir de se produire.

2
répondu Jace Sparks 2017-05-23 12:02:40

importer les bibliothèques:

import AVKit
import AVFoundation
import MediaPlayer
import AudioToolbox   

Set delegaete comme ce

AVPlayerViewControllerDelegate

Wrtie pretty code où vous voulez jouer comme bouton action:

let videoURL = URL(string: "https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4")
    let player = AVPlayer(url: videoURL!)
    let playervc = AVPlayerViewController()
    playervc.delegate = self
    playervc.player = player
    self.present(playervc, animated: true) {
        playervc.player!.play()
    }

100% de travail et d'essai

1
répondu Mr.Javed Multani 2018-03-08 07:11:35