2016-07-20 9 views
0

Ich bin vertraut mit der Erstellung eines Byte-Arrays von UIImage. Aber wie mache ich das von einem Video? Das ist, was ich in der imagePickerController Delegiertenmethode didFinishPickingMediaWithInfo habe.Konvertieren von Video von Kamera zu Byte Array Swift

if let media = info[UIImagePickerControllerOriginalImage] as? UIImage { 
     let byteArray = UIImageJPEGRepresentation(media, 1.0) 
     print("hi") 
    } else { 
     //stuck here 
    } 
    FIRDatabase.database().reference().child("dataUploaded").setValue("uploaded") 
    uploaded = true 
    dismissViewControllerAnimated(true, completion: nil) 

Antwort

1

Videos funktionieren etwas anders als Bilder in UIImagePickerController. Anstatt die rohen Videodaten bereitzustellen, gibt UIImagePickerController eine URL der Videodatei zurück.

Verwenden Sie die info[UIImagePickerControllerMediaURL], um die URL der Videodatei zu erhalten. Sie können die Bytes der Datei mit dem Initialisierer NSData(contentsOfURL:) laden.

z.

if let fileURL = info[UIImagePickerControllerMediaURL] as? NSURL { 
    let bytes = try? NSData(contentsOfURL: fileURL) 
} 

Hinweis: bytes ist optional, da das Video Laden fehlschlagen kann.

Normalerweise ist das Video eine MOV- oder MP4-Videodatei mit Inhalten, die mit dem .H264-Codec codiert sind, obwohl andere Formate existieren.

Verwandte Themen