Ошибка "Не удается декодировать" при попытке сохранить файл с помощью AVAssetExportSession при использовании Xamarin

Я портировал этот пример: видео с перекрытием на Xamarin.

Когда я использую этот AVMutableComposition в AVPlayer, я могу смотреть отредактированное видео. Но когда я пытаюсь сохранить его, используя AVAssetExportSession, я всегда получаю ошибку "Cannot Decode". Я пробовал каждый пресет и каждый тип файла, и это не помогает.

Я также попытался использовать официальный пример https://github.com/xamarin/monotouch-samples/tree/master/AVCompositionDebugVieweriOS, и я получаю ту же ошибку.

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

Когда я покидаю сессию.VideoComposition, как ноль:

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?

1 ответ

Решение

Хорошо, я решаю эту проблему. Кажется, что проблема была ТОЛЬКО, когда я использую симулятор iPhone. Когда я развертываю свое приложение на устройстве, оно работает нормально.

Может быть, это кому-то поможет: если у вас в симуляторе есть ошибка Cannot Decode, проверьте, работает ли код на устройстве.

Другие вопросы по тегам