Swift - Comment enregistrer de la vidéo en format MP4 avec UIImagePickerController?
Je suis entrain de créer une application dans laquelle j'ai besoin d'enregistrer des vidéos et de les télécharger sur un serveur. Maintenant, mon projet a une version d'android trop. À l'appui de la version d'android que j'enregistre les vidéos au format mp4. J'ai suivi cette tutoriel pour définir la UIImagePicker type de support pour le format film imagePicker.mediaTypes = [kUTTypeMovie as String]
La UIImagePickerController
est parfait pour mon exigence et la seule chose que j'ai besoin de changer son enregistrement au format mp4. J'ai essayé kUTTypeMPEG4
dans mediaTypes
mais il déclenche une erreur au moment de l'exécution, aucune description de l'erreur.
C'est ma Capture vidéo fonction
func startCameraFromViewController() {
if UIImagePickerController.isSourceTypeAvailable(.Camera) == false {
return
}
viewBlack.hidden = false
presentViewController(cameraController, animated: false, completion: nil)
cameraController.sourceType = .Camera
cameraController.mediaTypes = [kUTTypeMovie as String]
//cameraController.mediaTypes = [kUTTypeMPEG4 as String]
cameraController.cameraCaptureMode = .Video
cameraController.videoQuality = .TypeMedium
if(getPurchaseId() as! Int == 0)
{
if(txtBenchMark.text?.isEmpty == false)
{
cameraController.videoMaximumDuration = NSTimeInterval(300.0)
}else{
cameraController.videoMaximumDuration = NSTimeInterval(60.0)
}
}else{
cameraController.videoMaximumDuration = NSTimeInterval(600.0)
}
cameraController.allowsEditing = false
}
Je suis en utilisant Swift 2.2 et Xcode 8 avec Use Legacy swift Language version = Yes
Toutes autres Solutions sont également appréciés. Merci à l'avance.
EDIT:
J'ai trouvé qu'il n'y a pas de méthode pour enregistrer les vidéos au format mp4 en swift. seuls peuvent être convertis au format de apple quicktime mov format.
OriginalL'auteur Kautham Krishna | 2016-11-01
Vous devez vous connecter pour publier un commentaire.
Voici un code que vous pouvez utiliser pour convertir les vidéos en MP4:
Source: https://stackoverflow.com/a/39329155/4786204
Je ne crois pas que c'est possible avec l'INTERFACE utilisateur sélecteur d'images.
Merci pour votre aide ami. Je vais essayer le code ci-dessus.
Merci pour votre Aide cela a fonctionné parfaitement. Cependant j'avais besoin de faire quelques modifications en fonction de mes besoins et swift 2.2 syntaxe
OriginalL'auteur William Taylor
J'ai apporté quelques modifications à la suite de 2 réponses pour le rendre compatible avec Swift3:
https://stackoverflow.com/a/40354948/2470084
https://stackoverflow.com/a/39329155/2470084
OriginalL'auteur Kai-jie Ke
Un rapide swift 4 mise à jour de la réponse à la question précédente:
Fonctionne très bien merci ... mais la vidéo ne peut pas être joué sur google Chrome avec HTML5. Quelqu'un aurait-il une solution ?
OriginalL'auteur Robert Nissl
Mineur refactoring des exemples précédents:
Aussi:
AVAssetExportPresetHighestQuality
preset fonctionne lorsque la vidéo est lue sur Android /Chrome.P. S. sachez que le gestionnaire d'achèvement de
exportVideo
méthode pourrait ne pas être renvoyé sur le thread principal.OriginalL'auteur tadija
Exécuter sur iOS11, nous avons toujours reçu la valeur nil pour l'AVAssetExportSession. Nous n'avons aucune solution pour ce cas?
OriginalL'auteur Tram Nguyen