Mit unserer App können Nutzer ein Video aufzeichnen. Danach fügt die App Untertitel hinzu und exportiert das bearbeitete Video.Wie wird der AVPlayer sofort und nicht erst nach dem Ende des Videos angezeigt?
Das Ziel besteht darin, das Video sofort wiederzugeben, aber der AVPlayer wird erst nach dem Ende des Videos angezeigt (und nur Audio wiedergegeben, was ein separates Problem darstellt).
Folgendes passiert jetzt: Wir zeigen eine Vorschau, so dass der Benutzer sehen kann, was er in Echtzeit aufzeichnet. Nachdem der Benutzer die Aufnahme beendet hat, möchten wir das Video zur Überprüfung wiedergeben. Leider wird kein Video angezeigt und nur Audio wiedergegeben. Ein Bild, das einen Frame des Videos darstellt, wird angezeigt, wenn die Wiedergabe beendet ist.
Warum passiert das?
func exportDidFinish(exporter: AVAssetExportSession) {
println("Finished exporting video")
// Save video to photo album
let assetLibrary = ALAssetsLibrary()
assetLibrary.writeVideoAtPathToSavedPhotosAlbum(exporter.outputURL, completionBlock: {(url: NSURL!, error: NSError!) in
println("Saved video to album \(exporter.outputURL)")
self.playPreview(exporter.outputURL)
if (error != nil) {
println("Error saving video")
}
})
}
func playPreview(videoUrl: NSURL) {
let asset = AVAsset.assetWithURL(videoUrl) as? AVAsset
let playerItem = AVPlayerItem(asset: asset)
player = AVPlayer(playerItem: playerItem)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = view.frame
view.layer.addSublayer(playerLayer)
player.play()
}
Es ist mir unklar, was Sie erwarten. Bitte umformulieren. Versuchen Sie zu zeigen, was die Kamera während der Videoaufnahme aufnimmt? Wenn Sie sagen, dass der AVPlayer erst nach dem Ende des Videos erscheint, meinen Sie, dass der AVPlayer erst erscheint, wenn die Aufnahme beendet ist? –
@ JörnEyrich sorry für die Verwirrung. Jetzt passiert Folgendes: Wir zeigen eine Vorschau, sodass der Benutzer in Echtzeit sehen kann, was er aufnimmt. Nachdem der Benutzer die Aufnahme beendet hat, möchten wir das Video wiedergeben. Leider wird kein Video angezeigt und nur Audio wiedergegeben. Ein Bild, das einen Frame des Videos darstellt, wird angezeigt, wenn die Wiedergabe beendet ist. – Crashalot
Vielleicht ist das Video, das du generierst, kaputt? Wie sieht es aus, wenn du es aus dem Album spielst, in dem du es gespeichert hast? Alternativ, wenn Sie ein anderes Video in playPreview() statt dem gerade aufgenommenen abspielen, wird das korrekt angezeigt? –