¿Cómo se reproduce un video con AV Kit Player View Controller en 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
(no tiene los controles), vea esta respuesta .Respuestas:
Swift 3.x - 5.x
Necesario: importar AVKit , importar AVFoundation
El marco de AVFoundation es necesario incluso si usa AVPlayer
Si desea usar AVPlayerViewController :
o simplemente AVPlayer :
Es mejor poner este código en el método: anular func viewDidAppear (_ animated: Bool) o en algún lugar después.
C objetivo
AVPlayerViewController :
o simplemente AVPlayer :
fuente
Prueba esto, definitivamente funciona para
Swift 2.0
fuente
self.addChildViewController(playerController)
es ahoraself.addChild(playerController)
FYIPrueba esto
fuente
Swift 3.0 Código fuente completo:
fuente
C objetivo
Esto solo funciona en
Xcode 7
Ir a
.h
archivo e importarAVKit/AVKit.h
yAVFoundation/AVFoundation.h
. Luego vaya a.m
presentar y agregue este código:fuente
Usando MPMoviePlayerController:
Usando AVPlayer:
Tengo un botón de reproducción para manejar el toque del botón.
He agregado un observador que escucha AVPlayerItemDidPlayToEndTimeNotification.
Cuando finalice la reproducción de video / audio, reinicie la imagen del botón y la notificación
fuente
¿Un error (?!) en iOS10 / Swift3 / Xcode 8?
no funciona (vaciar rect ...)
esto funciona:
Misma URL ...
fuente
player.play()
después:self.view.layer.addSublayer(playerLayer)
e intente nuevamenteSwift 3:
fuente
AVPlayerViewController
?Esto funcionó para mí en Swift 5
Se agregaron botones de acción para reproducir videos del sitio web y locales con el siguiente ejemplo de código rápido
fuente
Swift 5
// aquí el curso incluye un archivo de modelo, dentro de él he dado la url, así que llamo a la función del modelo usando la función del curso.
// también IntroductionVideoUrl es una URL que he declarado dentro del modelo.
Alternativamente, también puede usar el siguiente código en lugar de llamar a la función desde el modelo
con
fuente
fuente
Swift 5.0
Mejorado de la respuesta @ingconti. Esto funcionó para mí.
fuente
Swift 5+
En primer lugar, debe definir 2 variables globalmente dentro de su controlador de vista.
Aquí estoy agregando jugador a la vista deseada.
Luego agregue el siguiente código al método viewDidLoad .
Si no está definiendo player y playerViewController a nivel mundial, no podrá incrustar player.
fuente