2

关于库中的资产,即:assets-library://asset/asset.mov?id=0399CB6D-D3D9-4F4C-82B9-AC93CCE2FB16&ext=mov

[UIVideoEditorController canEditVideoAtPath:videoPath]总是返回 NO

我在控制台中看到这个错误: <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.}

帮助?

4

2 回答 2

3

显然没有办法用UIVideoEditController. 我最终将文件复制AVAssetWriter到应用程序沙箱,然后我就可以使用UIVideoEditController.

于 2012-07-11T15:03:15.437 回答
2

我能够成功编写视频轨道。我也可以将该文件保存到画廊。视频以原始文件的所有质量播放。但无法复制音频缓冲区,因此视频播放时没有声音。

但是,如果我尝试先写入音轨,然后再写入视频轨道,则视频缓冲区的写入失败。即 BOOL appended = [assetWriterInput appendSampleBuffer:buffer]; 返回 NO 失败。

缓冲区在写入音轨时被附加。然后我取消读取音轨并开始读取视频轨道。附加视频缓冲区失败。对于这两个文件我都设置 startSessionAtSourceTime:KCMTimeZero 。

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

我希望能够复制画廊内的 .MOV 文件,其中包含所有音频+视频轨道。

** *目的:最后我想编辑使用 UIVideoEditorController 复制的文件。我们不能直接在画廊中编辑文件。因此我首先将它复制到沙箱中然后编辑它。

于 2012-11-09T08:18:15.583 回答