Экспорт
Обзор
Final Cut Pro X может вручить от результатов редактирования к другому приложению путем экспорта следующего:
Представленные носители отредактированной временной шкалы
Описание редактирования как XML
Final Cut Pro X управляет конфигурациями экспорта как Местами назначения Доли. У места назначения доли может быть целевое приложение, получающее вывод экспорта, когда применимо. Final Cut Pro X взаимодействует с приложением для управления определенными аспектами работы экспорта.
Процесс экспорта
Final Cut Pro X экспортирует представленную временную шкалу как медиа-файл, или транскодирование его в определенный формат или отъезд его в представленном формате (т.е. Apple ProRes). Экспортируемый медиа-файл имеет ряд метаданных, называемых Метаданными Доли, что можно выбрать и указать значения для того, когда Вы запускаете работу экспорта.
Final Cut Pro X может также экспортировать свои события или проекты как FCPXML. Final Cut Pro X может включать метаданные, связанные с проектом или активом в экспортируемом XML. Только элементы метаданных в выбранном представлении метаданных включены в вывод. Можно указать представление метаданных для определения набора элементов метаданных, входящего в вывод.
Ваше приложение, когда указано как цель места назначения доли, может влиять на работу экспорта, как обсуждено в Пользовательском Месте назначения Доли.
Пользовательское место назначения доли
Final Cut Pro X использует место назначения доли для управления информацией, связанной с определенным типом экспорта или доли.
Можно создать собственное место назначения доли и включать следующую информацию:
Настройки экспорта — выбор кодека, формата файла, и т.д.
Целевое приложение — целевое приложение, куда должны быть отправлены экспортируемые файлы.
Final Cut Pro X запрашивает целевое приложение для следующих подробных данных контроля экспорта:
Экспортировать ли XML как описание проекта в дополнение к представленным носителям. Это позволяет пользователю экспортировать и представленную временную шкалу проекта и описание проекта XML на единственном шаге.
Какой набор метаданных включать в экспортируемый XML. Это также позволяет целевому приложению получать доступ к набору метаданных.
Расположение для экспорта выводится. Это позволяет Final Cut Pro X продолжаться, не имея необходимость показывать диалоговое окно Файла Сохранения.
Для создания пользовательского места назначения доли обратитесь к Работе с целевым разделом в Справке Final Cut Pro X.
Final Cut Pro X поддерживает механизм для распределения пользовательских мест назначения доли другим пользователям Final Cut Pro X или рабочим станциям как .fcpxdest файлы.
Создать и импортировать место назначения .fcpxdest файл:
Перетащите место назначения из Целевого списка в области Destinations Предпочтения Final Cut Pro X к расположению в Вашей системе.
Перетащите
.fcpxdestфайл в список мест назначения доли на другой рабочей станции Final Cut Pro X.
Обратитесь к местам назначения Доли между пользовательским разделом Final Cut Pro X в Справке Final Cut Pro X. Также можно установить .fcpxdest файлы в любом из следующих расположений:
/Library/Application Support/ProApps/Share Destinations/~/Library/Application Support/ProApps/Share Destinations/
Взаимодействие с целевым приложением
То, когда временная шкала проекта экспортируется через пользовательское место назначения доли с указанным целевым приложением, Final Cut Pro X сначала определяет, способно ли приложение к ответу к, запрашивает от Final Cut Pro X. Это делает это путем проверки пакета plist приложения. Информация, которая должна быть в пакете plist, обсуждена в Возможностях Приложения сигнализации.
Принятие Final Cut Pro X решило, что приложение способно к ответу на его запросы, это отправляет событие Create Asset Apple, запрашивающее новый актив заполнителя, с которым должен быть связан вывод экспорта. Этот запрос также включает имя актива, набор метаданных доли и список представлений метаданных. Причина обеспечения представлений метаданных здесь состоит в том, чтобы позволить приложению определить набор метаданных, входящих в XML проекта. Приложение, как ожидают, возвратит объектный спецификатор, идентифицирующий недавно создаваемый объект актива заполнителя.

После того, как новый объект актива успешно создается, Final Cut Pro X просит у приложения следующее:
Расположение для выходных файлов экспорта.
Хочет ли приложение XML проекта в дополнение к, представил/транскодировал носители.
Обновленный набор метаданных доли.
Метаданные просматривают для включения в XML проекта.
Final Cut Pro X делает это путем отправки серии событий Get Property Apple. Приложение, как ожидают, возвратит надлежащие значения свойств.

С этими данными Final Cut Pro X помещает, представил/транскодировал медиа-файл (и XML-файл, если применимо) в расположении возвратился из приложения. Когда экспорт завершен, Final Cut Pro X уведомляет приложение, что выходные файлы экспорта доступны путем отправки события Open Document Apple. Это событие имеет файл URLs выходных файлов экспорта.

Требования к приложению
Для управления аспектами работы экспорта приложение должно сделать следующее:
Укажите в его пакете plist, что это может ответить на, запрашивает от Final Cut Pro X.
Реагируйте на события Apple, отправленные Final Cut Pro X.
Самое важное требование является способностью реагировать на события Apple, отправленные от Final Cut Pro X. Консультируйтесь с Руководством по созданию сценариев Какао для подробных данных того, как приложение реализует такую функциональность в целом. В частности следующее требуются:
Определите терминологию сценариев включая события, классы объектов и типы записи.
Классы обработчика команды реализации, на которые ссылаются из определений терминологии сценариев.
Реализуйте классы объектов и связанные свойства согласно кодированию значения ключа (KVC) и другим требуемым соглашениям, задокументированным в Руководство по созданию сценариев Какао.
Обратитесь к Приложению A: Комплект Управления активами ProVideo для получения дополнительной информации об определениях терминологии сценариев.
Подробные данные реализации
Внедрение приложения включает следующее:
Указание его возможностей — Видит Возможности Приложения сигнализации.
Определение его терминологии сценариев — Видит Определение Сценариев.
Взаимодействие с Final Cut Pro X с помощью событий Apple — события See Interaction Through Apple.
Возможности приложения сигнализации
Final Cut Pro X должен знать переднюю сторону, понимает ли приложение протокол. Для указания этой возможности приложение должно иметь следующую запись в своем пакете plist:
<key>com.apple.proapps.MediaAssetProtocol</key> |
<dict> |
</dict> |
Сценарии определения
Приложение должно иметь определение терминологии сценариев, определяющее события, классы объектов и типы записи, описанные в этом разделе. Обратитесь к Подготовке Файла Определения Сценариев в Руководстве по созданию сценариев Какао. Кроме того, обратитесь к Приложению A: Комплект Управления активами ProVideo для определения сценариев использование Final Cut Pro X.
Тип записи: расположение актива
Описывает, где расположены файлы, связанные с активом.
Свойство | Ввести | Описание |
|---|---|---|
| файл | Содержание пути к папке. |
| текст | Базовое имя для выходных файлов экспорта. Это имя должно соответствовать имя актива. |
| булевская переменная | Набор к |
| булевская переменная | Набор к |
Тип Класса объекта: актив
Представляет соответствие объекта актива выводу экспорта в приложении.
Свойство | Ввести | Описание |
|---|---|---|
| текст | Уникальный идентификатор актива. |
| текст | Имя актива. |
| расположение актива | Расположение файлов связалось с активом. |
| определяемая пользователем запись | Совместно используемые метаданные устанавливают связанный с активом. |
| определяемая пользователем запись | Опции установлены для данных актива. |
Тип события: сделать
Создает новый объект, в частности объект актива.
Параметр | Ввести | Описание |
|---|---|---|
| ввести | Класс нового объекта. |
| спецификатор расположения | Расположение, в которое можно вставить новый объект. |
| любой | Начальное содержание объекта. |
| запись | Список свойств объектов раньше инициализировал новый объект, включая следующее:
|
Для включения доступа к объектам и к событию из поигравшего в песочнице приложения приложение должно указать com.apple.assetmanagement.import группа доступа для класса объекта актива и для соответствующего элемента в его контейнере, и должна также указать ту же группу доступа для события Create Asset. См. Приложение A: Комплект Управления активами ProVideo для большего количества подробных данных.
События Interaction Through Apple
Как только Final Cut Pro X подтверждает, что приложение способно к участию во взаимодействии, это отправляет серию событий Apple в порядке, описанном ниже. Приложение, как ожидают, обработает эти события и возвратит надлежащую информацию.
Обратитесь к Приложению B: Пример AppleScript для примера сценария и демонстрационного журнала событий и ответов, иллюстрирующих взаимодействие.
Событие Create Asset
make new asset with properties { name: <asset name>, metadata: <metadata record>, data options: <options record> }Когда пользователь инициирует работу доли, Final Cut Pro X отправляет событие Create Asset. Приложение, как ожидают, создаст объект актива заполнителя, представляющий вывод работы доли и возвратить объектный спецификатор, которому использование Final Cut Pro X для ссылки на актив возражает в последующих событиях Apple.
При обработке этого события приложение имеет возможность перевести ее UI в рабочее состояние, прежде чем возможно длительная работа транскода запускается. Этот UI может использоваться, чтобы позволить пользователю указать информацию, относящуюся к работе, которую приложение собирается выполнить на выводе экспорта. Эта информация может включать пользовательские метаданные, которые будут сохранены вместе с носителями или данными, определяющими расположение вывода.
Параметры события включают следующие свойства объектов актива:
Свойство
Описание
nameИмя актива. Final Cut Pro X получает это из названия проекта.
metadataЗапись, представляющая набор метаданных доли, где ключи являются обратными ключами метаданных стиля DNS и значениями, является связанными значениями метаданных.
data optionsЗапись, содержащая экспорт, вывела опции. Эта запись содержит информацию о доступных представлениях метаданных, из которых может выбрать приложение.
Ключ: availableMetadataSets
Тип: список
Описание: список доступных метаданных просматривает в Final Cut Pro X.
Приложение должно указать свой выбор в ответ на другое событие Apple, отправленное позже, который просит значение свойства опций данных.
Возвращаемое значение для этого события Apple является объектным спецификатором для нового создаваемого объекта актива.
Событие Get Location Info Property
get location info of <asset object specifier>
Как только новый объект актива создается в приложении, Final Cut Pro X отправляет событие Get Location Info Property, просящее расположение выходных файлов экспорта. Приложение, как ожидают, возвратит запись расположения актива, как описано в Сценариях Определения. В частности
folderсвойство записи указывает расположение папки, куда помещаются выходные файлы экспорта.base nameсвойство используется в качестве базового имени выходных файлов экспорта. Медиа-файл имеет.movрасширение и XML-файл имеют.fcpxmlрасширение. Если приложение ожидает XML-файл и медиа-файл, несомненно, установятhas descriptionсвойство к истине в записи расположения актива.Событие Get Metadata Property
get metadata of <asset object specifier>
Final Cut Pro X отправляет событие Get Metadata Property, просящее обновленный набор метаданных. Final Cut Pro X тогда обновляет проект и включает обновленные метаданные в вывод экспорта. Final Cut Pro X ранее предоставил исходный набор метаданных через событие Create New Asset. Приложение, как ожидают, возвратит пользовательскую запись, имеющую ключи метаданных и их значения.
В частности ключ метаданных
com.apple.proapps.share.idпредставляет уникальный идентификатор актива носителей. Приложение может генерировать уникальный идентификатор в своих собственных целях и включать тот ID в обновленный набор метаданных. Final Cut Pro X включает этот ID в вывод экспорта так, чтобы приложение могло использовать его для отслеживания файлов, связанных с определенным активом.Событие Get Data Options Property
get data options of <asset object specifier>
Final Cut Pro X отправляет событие Get Data Options Property, запрашивающее опции данных использоваться в генерации вывода экспорта. Приложение, как ожидают, возвратит пользовательскую запись со следующим ключом и его присваиваемым значением:
Ключ
Ввести
Описание
metadataSetтекст
Имя представления метаданных, содержащего элементы метаданных, которые будут включены в XML проекта.
Открытое событие Documents
open <list of export output files>
Как только работа экспорта завершилась, Final Cut Pro X отправляет путь к экспортируемым выходным файлам через событие Open Document. Значение ожидаемого дохода является объектным спецификатором для объекта актива. Приложение, как ожидают, свяжет файлы к активу, который оно создало, с помощью папки и базового имени файлов для соответствия против информации о расположении актива.
Примечания по реализации
Объект актива
Актив носителей может соответствовать документу в некоторых приложениях, в то время как в других это может просто быть элемент большего объекта (такого как база данных актива носителей), который сама может быть документом. Протокол между Final Cut Pro X и приложением через события Apple предназначается, чтобы быть агностиком к объектной иерархии вместимости в приложении, насколько приложение возвращает объектный спецификатор, с которым Final Cut Pro X может получить доступ к определенному объекту актива.
Определение сценариев (см. Приложение A: Комплект Управления активами ProVideo), определяет актив как элемент документа, но это не должен быть тот путь.
Когда объект актива не является документом, обрабатывание события Open Document Apple для соединения файлов к активу могло бы быть немного неловким. Так как Какао обрабатывает событие Open Document Apple, Вам был бы нужен пользовательский контроллер документа для переопределения поведения Какао, когда приложение открывает файл, и свяжите файл или с существующим объектом актива или с новым объектом актива при необходимости. Ассоциация должна быть сделана на основе URL актива.
Сценарии расширений класса поддержки
Приложения с помощью Поддержки Сценариев Какао для обработки событий Apple, отправленных Final Cut Pro X, должны поддерживать преобразования между типами дескриптора события Apple, используемыми Final Cut Pro X и соответствующими Фундаментальными классами как категории Objective C (как упомянуто ниже), так как они в настоящее время не реализуются Какао.
Событие Apple записывает дескриптор (typeAERecord) и NSDictionary
@interface NSDictionary (UserDefinedRecord)
+(NSDictionary*)scriptingUserDefinedRecordWithDescriptor:(NSAppleEventDescriptor*)desc;
-(NSAppleEventDescriptor*)scriptingUserDefinedRecordDescriptor;
@end
Дескриптор списка событий Apple (typeAEList) и NSArray
@interface NSArray (UserList)
+(NSArray*)scriptingUserListWithDescriptor:(NSAppleEventDescriptor*)desc;
-(NSAppleEventDescriptor*)scriptingUserListDescriptor;
@end
Событие Apple универсальный дескриптор (список, запись, и т.д.) и ID
@interface NSAppleEventDescriptor (GenericObject)
+(NSAppleEventDescriptor*)descriptorWithObject:(id)object;
-(id)objectValue;
@end
Файл события Apple дескриптор URL (typeFileURL) и (дополнительный) NSURL
@interface NSAppleEventDescriptor (URLValue)
+(NSAppleEventDescriptor*)descriptorWithURL:(NSURL*)url;
-(NSURL*)urlValue;
@end
Обратитесь к Приложению D: Сценарии Категорий Поддержки для демонстрационных реализаций этих категорий.
Уровень взаимодействия события Apple
Чтобы избежать инициировать взаимодействие с пользователем при обработке событий Apple, отправленных автоматизированным потоком операций, удостоверьтесь, что приложение, обрабатывающее события, проверяет уровень взаимодействия с пользователем событий. Можно сделать это в обработчике команды сценариев путем получения текущего события Apple и keyInteractLevelAttr атрибут.
Значение keyInteractLevelAttr атрибут может быть одним из следующего:
kAENeverInteract = 0x00000010, /* server should not interact with user */ |
kAECanInteract = 0x00000020, /* server may try to interact with user */ |
kAEAlwaysInteract = 0x00000030, /* server should always interact with user where appropriate */ |
kAECanSwitchLayer = 0x00000040, /* interaction may switch layer */ |
Консультируйтесь со Ссылкой класса NSAppleEventManager для подробных данных о получении текущего события Apple.