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!
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
}
}
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()
}
}
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.
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