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

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

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

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

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

1 Ответ

2 голосов
/ 02 января 2012

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

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

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

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

...