'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' 错误,请检查代码是否在设备上运行。
我将 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' 错误,请检查代码是否在设备上运行。