'Cannot Decode' 使用 Xamarin 时尝试使用 AVAssetExportSession 保存文件时出错

'Cannot Decode' error when trying to save file using AVAssetExportSession when using Xamarin

我将 this example: 的重叠视频移植到 Xamarin。

当我在 AVPlayer 中使用这个 AVMutableComposition 时,我可以观看编辑后的视频。 但是当我尝试使用 AVAssetExportSession 保存它时,我总是得到 'Cannot Decode' 错误。我尝试了每个预设和每个文件类型,但没有帮助。

我也尝试使用 AVCompositionDebugVieweriOS 的官方单点触摸示例,但我得到了同样的错误。

public AVAssetExportSession AssetExportSession (string presetName)
{
    var session = new AVAssetExportSession (Composition, presetName);
    session.VideoComposition = VideoComposition;
    session.AudioMix = AudioMix;
    return session;
}

当我将 session.VideoComposition 保留为 null 时:

public AVAssetExportSession AssetExportSession (string presetName)
{
    var session = new AVAssetExportSession (Composition, presetName);
    //session.VideoComposition = VideoComposition;
    session.AudioMix = AudioMix;
    return session;
}

文件保存没有问题(但没有我需要的覆盖)。

有人知道为什么当我使用 AVAssetExportSession.VideoComposition 时出现 'Cannot Decode' 错误吗?这是 Xamarain/MonoTouch 问题吗?

好的,我解决了这个问题。 看来问题仅在我使用 iPhone 模拟器时出现。 当我将我的应用程序部署到设备时,它工作正常。

也许这会对某人有所帮助:如果您在模拟器中遇到 'Cannot Decode' 错误,请检查代码是否在设备上运行。