Есть ли шанс обновить фильм с помощью AVfoundation без копирования (например, updateMovieFile в QTKit)?

Недавно я использовал AVFoundation для добавления метаданных к фильмам в своем приложении OS X 10.7+. Поскольку моя цель - ARC (64 бит), QTKit.framework и Quicktime.framework не будут работать. В этом сценарии я ДОЛЖЕН написать временный фильм, используя AVAssetExportPresetPassthrough, а затем заменить его исходным файлом.

Однако Apple отклонила мое приложение, заявив, что оно записывает данные из разрешенных папок (мое приложение получает файлы фильмов для добавления метаданных посредством перетаскивания, поэтому я не знаю, где будет сохраняться). Как я могу заменить исходный фильм обновленным фильмом метаданных без метода updateMovieFile?.

Есть ли что-нибудь подобное в 64-битной земле? Любой обходной путь? Любой совет?.

Большое спасибо.

1 ответ

QTKit является 64-битным и может использоваться. Использование ARC или нет не имеет никакого отношения к существующим платформам, поскольку среда выполнения одинакова для приложений ARC и MRC. ARC - только шаг препроцессора и компилятора, он не требует специальной среды выполнения, в отличие от сборки мусора.

Чтобы сохранить файл в любой папке, если ваше приложение находится в изолированной программной среде, способ сделать это - использовать PowerBox, который является отдельным процессом, который контролирует и отображает диалоговые окна "Открыть" и "Сохранить". PowerBox используется автоматически, если изолированное приложение запрашивает NSOpenPanel или же NSSavePanel,

Это работает так, что когда пользователь перетаскивает файл в ваше приложение, ваше приложение отображает NSSavePanel и позвольте пользователю выбрать выходное местоположение. NSSavePanel на самом деле отображается PowerBox и позволяет вашему приложению вырваться из песочницы, чтобы записать в местоположение файла, которое выбирает пользователь. Вы можете настроить NSSavePanel указать местоположение существующего файла, так что пользователю просто нужно нажать Сохранить.

Я понимаю, что это не идеально, потому что это нарушает приятный интерфейс перетаскивания, но в настоящее время это единственный поддерживаемый способ записи в файл вне песочницы.

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