エラーと問題があります。変更したビデオをカメラロールに書き出したいのですが、書き出したビデオはカメラロールと互換性がありません。AVAssetExportSession - カメラロールと互換性のない書き出しビデオ
また、最初に録画した動画を削除して、複数回録画することもできますが、エラーが発生して意味がありません。コードのコメントを外すと、最終パスが存在しないことを示すエラーが表示されます。私は変更されたバージョンがエクスポートされる前にこれが最初の映画を削除すると仮定しています。しかし、削除コードがエクスポートコードの下にあるので、なぜそれが起こるのかわかりません。
は、ここでは、コードです:
// Create Date Formatter
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd-hh-mm-ss"
// Create Export Session
let exportSession = AVAssetExportSession(asset: composition, presetName: AVAssetExportPresetHighestQuality)
exportSession?.videoComposition = videoComposition
do {
try exportSession?.outputURL = NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: nil, create: true).URLByAppendingPathComponent(dateFormatter.stringFromDate(NSDate())).URLByAppendingPathExtension("mov")
}
catch {
print(error)
}
exportSession?.outputFileType = AVFileTypeQuickTimeMovie
exportSession?.exportAsynchronouslyWithCompletionHandler({
print("Output File Type: \(exportSession?.outputFileType)")
print("Output URL: \(exportSession?.outputURL?.absoluteString)")
print("Video Compatible W/ Camera Roll: \(exportSession?.asset.compatibleWithSavedPhotosAlbum)")
//-----SAVE-----
if exportSession?.status == AVAssetExportSessionStatus.Completed
{
print("Export Finished")
if UIVideoAtPathIsCompatibleWithSavedPhotosAlbum((exportSession?.outputURL?.absoluteString)!) //Returns false...
{
UISaveVideoAtPathToSavedPhotosAlbum((exportSession?.outputURL?.absoluteString)!, self, nil, nil)
print("Video Saved")
// Show Message
self.showMessage()
}
else
{
print("Video Not Saved")
}
}
else if exportSession?.status == AVAssetExportSessionStatus.Failed
{
print("Export Error: \(exportSession?.error)")
print("Export Failed")
}
else
{
print("Export Cancelled")
}
})
// The code below generates an error
// Remove Temporary Video
// do
// {
// try NSFileManager.defaultManager().removeItemAtURL(initialOutputURL)
// }
// catch
// {
// print(error)
// }
だからここでの非互換性があるから?ログにはQuickTime形式と720x720解像度が表示されています。