Comment lire une vidéo avec AV Kit Player View Controller dans Swift?
override func viewDidLoad() {
super.viewDidLoad()
let videoURLWithPath = "http://****/5.m3u8"
let videoURL = NSURL(string: videoURLWithPath)
playerViewController = AVPlayerViewController()
dispatch_async(dispatch_get_main_queue()) {
self.playerViewController?.player = AVPlayer.playerWithURL(videoURL) as AVPlayer
}
}
AVPlayer
(n'a pas les contrôles), voir cette réponse .Réponses:
Swift 3.x - 5.x
Nécessaire: importer AVKit , importer AVFoundation
Le framework AVFoundation est nécessaire même si vous utilisez AVPlayer
Si vous souhaitez utiliser AVPlayerViewController :
ou juste AVPlayer :
Il est préférable de mettre ce code dans la méthode: override func viewDidAppear (_ animated: Bool) ou quelque part après.
Objectif c
AVPlayerViewController :
ou juste AVPlayer :
la source
Essayez ceci, fonctionne certainement pour
Swift 2.0
la source
self.addChildViewController(playerController)
est maintenantself.addChild(playerController)
fyiEssaye ça
la source
Code source complet de Swift 3.0:
la source
Objectif c
Cela ne fonctionne que dans
Xcode 7
Accédez au
.h
fichier et importezAVKit/AVKit.h
etAVFoundation/AVFoundation.h
. Ensuite, allez dans le.m
fichier et ajoutez ce code:la source
Utilisation de MPMoviePlayerController:
Utilisation d'AVPlayer:
J'ai un bouton de lecture pour gérer les pressions sur les boutons.
J'ai ajouté un observateur à l'écoute d'AVPlayerItemDidPlayToEndTimeNotification.
Lorsque la lecture vidéo / audio est terminée, réinitialisez l'image du bouton et la notification
la source
un bug (?!) dans iOS10 / Swift3 / Xcode 8?
ne fonctionne pas (rect vide ...)
cela marche:
Même URL ...
la source
player.play()
après:self.view.layer.addSublayer(playerLayer)
et réessayerSwift 3:
la source
AVPlayerViewController
?Cela a fonctionné pour moi dans Swift 5
Ajout de boutons d'action pour lire des vidéos à partir du site Web et du local avec l'exemple de code swift suivant
la source
Swift 5
// ici le cours comprend un fichier modèle, à l'intérieur j'ai donné l'url, donc j'appelle la fonction à partir du modèle en utilisant la fonction course.
// aussi introductionVideoUrl est une URL que j'ai déclarée à l'intérieur du modèle.
Vous pouvez également utiliser le code ci-dessous au lieu d'appeler la fonction à partir du modèle
avec
la source
la source
Swift 5.0
Amélioration de la réponse @ingconti. Cela a fonctionné pour moi.
la source
Swift 5+
Tout d'abord, vous devez définir 2 variables globalement dans votre contrôleur de vue.
Ici, j'ajoute un joueur à une vue souhaitée.
Ajoutez ensuite le code suivant à la méthode viewDidLoad .
Si vous ne définissez pas globalement player et playerViewController , vous ne pourrez pas intégrer player.
la source