UIVideoEditorController canEditVideoAtPath对来自库的资产返回false

时间:2012-07-10 13:35:45

标签: iphone ios uikit avfoundation uivideoeditorcontroller

来自图书馆的资产,即: assets-library://asset/asset.mov?id = 0399CB6D-D3D9-4F4C-82B9-AC93CCE2FB16& ext = mov

[UIVideoEditorController canEditVideoAtPath:videoPath]总是返回

我在控制台中看到此错误: <Warning>: Video assets-library://asset/asset.mov?id=0399CB6D-D3D9-4F4C-82B9-AC93CCE2FB16&ext=mov cannot be saved to the saved photos album: Error Domain=NSOSStatusErrorDomain Code=2 "This movie could not be played." UserInfo=0x6f7b90 {NSLocalizedDescription=This movie could not be played.}

帮助?

2 个答案:

答案 0 :(得分:3)

显然无法使用UIVideoEditController编辑图书馆资源。 我最终使用AVAssetWriter将文件复制到应用程序沙箱,然后我可以使用UIVideoEditController

答案 1 :(得分:2)

我能够成功地编写视频曲目。我也可以将该文件保存到图库。视频播放原始文件的所有质量。但是无法复制音频缓冲区,因此视频无声播放。

但是如果我首先尝试写音频轨道然后是视频轨道,那么视频缓冲区的写入就会失败。那就是附加BOOL = [assetWriterInput appendSampleBuffer:buffer];没有返回NO。

写入音频曲目时会添加缓冲区。然后我取消了音频曲目的阅读器并开始阅读视频曲目。接着视频缓冲区失败。对于两个写入,我设置startSessionAtSourceTime:KCMTimeZero。

如果我只写视频缓冲区,那么视频将在没有音频的情况下播放。

我希望能够复制存在于图库中的.MOV文件,其中包含所有音频+视频轨道。

** * Purpoose:最后我想编辑使用UIVideoEditorController复制的文件。我们无法直接编辑gallery.Hence中的文件。我首先将其复制到沙箱中,然后进行编辑。