Редактирование фильмов
В этой главе описываются функции панели инструментов фильма, которую Ваше приложение будет использовать для редактирования фильмов и дорожек. Необходимо будет считать эту главу, если приложение обеспечит функции редактирования вне тех, которые встроены в контроллер фильма.
Панель инструментов Фильма обеспечивает ряд высокоуровневых функций, позволяющих Вам редактировать фильмы. В этой главе описываются эти высокоуровневые функции редактирования. Эти функции работают с текущим выбором фильма. Текущий выбор определяется временем начала и продолжительностью.
Панель инструментов Фильма также обеспечивает функции, позволяющие Вам редактировать сегменты фильма. Те функции описаны в Низкоуровневых Функциях редактирования фильма.
Фильмы, создаваемые этими функциями, содержат ссылки на данные в исходном фильме. Поскольку новые фильмы содержат ссылки и не данные, они являются маленькими и легко перемещенные в и от фрагмента. Если Вы удаляете фильм, содержащий данные, ссылки на данные в новых фильмах больше не действительны, и новые фильмы не могут проигрываться. Поэтому перед удалением исходного фильма необходимо вызвать FlattenMovie функция для каждого из новых фильмов. Эта функция копирует данные в каждый из новых фильмов, устраняя ссылки на данные.
Обратите внимание на то, что Панель инструментов Фильма не всегда копирует пустые дорожки от исходного фильма до фильмов, создающихся этими функциями. В частности Панель инструментов Фильма сохраняет пустые дорожки, пока Вы не вставляете или добавляете выбор в целевой фильм. В то время Панель инструментов Фильма удаляет пустые дорожки из выбора. Кроме того, если дорожка в исходном фильме имеет запаздывание вакуума, Панель инструментов Фильма удаляет тот вакуум из дорожки, когда это копируется в новый фильм. Поэтому, если Вы хотите добавить сегмент вне конца фильма, Вы вставляете пространство при вставке нового сегмента с помощью InsertMovieSegment функция.
Панель инструментов Фильма позволяет Вам вставлять различные типы данных в фильм. Например, изображения QuickDraw и стандартные звуковые данные могут быть вставлены непосредственно в фильм. При использовании компонента контроллера фильма Вы не должны использовать эти функции для вставки различных типов данных в фильм. При вызове Панели инструментов Фильма непосредственно, чтобы сделать редактирование, необходимо использовать функции, описанные в этом разделе.
Обработка демонстрационных ссылок носителей
Вы могли всегда использовать GetMediaSampleReference к выборкам доступа в фильме по одному. Но QuickTime также имеет GetMediaSampleReferences (обратите внимание на то, что это - форма множественного числа GetMediaSampleReference функция), который можно использовать для получения информации о группах выборок. Кроме того, можно использовать AddMediaSampleReferences работать с группами выборок, уже добавленных к фильму.
Управление входными картами носителей
Панель инструментов Фильма содержит две функции для поддержания входных карт носителей: GetMediaInputMap и SetMediaInputMap.
Каждая дорожка имеет определенные атрибуты, такие как размер, позиция и объем, связанный с ним. Носители вводят карту той дорожки, описывает, где переменные параметры сохранены так, чтобы дорожки модификатора знали, куда отправить их данные. Когда дорожка копируется, ее входная карта также копируется. CopyTrackSettings также передает входную карту носителей.
Отмена для фильмов
Панель инструментов Фильма обеспечивает функции, позволяющие Вам получать и восстанавливать состояние редактирования фильма. Состояние редактирования содержит информацию, полностью определяющую содержание фильма в то время, когда Вы создаете состояние редактирования. Это - в сущности, контрольная точка в сеансе редактирования. Можно управлять состояниями редактирования фильма для реализации возможности отмены редактирования фильмов. Например, можно получить состояние редактирования фильма прежде, чем выполнить работу редактирования, такую как сокращение и более позднее восстановление старое состояние. Вы можете иметь несколько состояний редактирования фильма, полученных в разное время во время сеанса редактирования, и восстановить любому из них в любое время. Этим способом можно обеспечить многоуровневую возможность отмены. В этом разделе описываются функции Панели инструментов Фильма, работающие с состояниями редактирования.
Обратите внимание на то, что состояние редактирования фильма не сохраняет все о фильме. Самый важный, состояние редактирования не содержит информацию о пространственных характеристиках фильма. Например, состояние редактирования не хранит текущий граничный прямоугольник или область отсечения. Следовательно, состояния редактирования подходят лучше всего для поддержки операций отмены, включающих содержание фильма, включая создание дорожки и удаление. Можно использовать другие функции Панели инструментов Фильма для поддержки операций отмены для характеристик фильма. Посмотрите Функции, Изменяющие Свойства Фильма для узнавания больше об этих функциях.
Можно использовать NewMovieEditState функционируйте для получения состояния редактирования фильма. Используйте UseMovieEditState восстановить фильм к его условию согласно предыдущему состоянию редактирования. Ваше приложение должно избавиться от состояния редактирования путем вызова DisposeMovieEditState функция. Необходимо избавиться от состояний редактирования фильма перед избавлением от фильма.
Функции, изменяющие свойства фильма
Панель инструментов Фильма обеспечивает много функций, позволяющих приложениям редактировать существующие фильмы или создавать содержание новых фильмов. В этом разделе описываются те функции. Это было разделено на следующие темы:
Работа С Характеристиками Дисплея описывает много функций, позволяющих Вам работать с характеристиками дисплея фильмов
Работа С Громкостью звука обсуждает функции, которые Ваше приложение может использовать для работы с громкостью звука фильма или дорожки
Определение местоположения Дорожек Фильма и Структур Носителей описывает функции, позволяющие Вашему приложению находить дорожки, связанные с фильмом
Определение Создания фильмов и Время изменения обсуждает функции, которые можно использовать для определения, когда фильм был создан или в последний раз изменен
Работа с характеристиками дисплея
Панель инструментов Фильма обеспечивает много функций, позволяющих Вашему приложению определять и изменять характеристики дисплея фильмов и дорожек. Эти функции обсуждены в следующих разделах. Перед использованием любой из этих функций необходимо быть знакомы с путем, которым Панель инструментов Фильма выводит на экран фильмы.
Можно использовать SetMovieGWorld и GetMovieGWorld функции для работы с графическим миром фильма.
Ваше приложение может работать с матрицей фильма путем вызова GetMovieMatrix и SetMovieMatrix функции, и это может работать с матрицей дорожки с GetTrackMatrix и SetTrackMatrix функции. Тогда можно выполнить операции на матрицах с функциями матрицы Панели инструментов Фильма.
Следующие функции влияют на выведенный на экран фильм и его дорожки в заключительной системе координат дисплея. SetMovieGWorld и GetMovieGWorld функции позволяют Вам работать с местом назначения дисплея фильма. GetMovieBox и SetMovieBox функции позволяют Вам работать с граничным прямоугольником фильма и его связанными трансформациями. Также можно использовать GetMovieMatrix и SetMovieMatrix функции для работы непосредственно с матрицей преобразования фильма. GetMovieDisplayBoundsRgn в текущее время фильма функция определяет граничную область фильма. С другой стороны, GetMovieSegmentDisplayBoundsRgn функция определяет граничную область фильма по сегменту требуемого времени. Можно использовать GetMovieDisplayClipRgn и SetMovieDisplayClipRgn функции для работы с областью отсечения дисплея фильма.
GetTrackDisplayBoundsRgn и GetTrackSegmentDisplayBoundsRgn функции определяют заключительную граничную область дорожки. Можно использовать GetTrackLayer и SetTrackLayer функции для управления порядком получения дорожек в фильме.
Много функций влияют на границы дисплея фильма перед любыми трансформациями дисплея. Эти функции работают в системе координат дисплея фильма. Можно использовать GetMovieClipRgn и SetMovieClipRgn функции для работы с областью отсечения фильма; т.е. область отсечения, применяющаяся перед трансформацией дисплея фильма. Используйте GetMovieBoundsRgn функция для определения граничной области фильма в текущее время фильма.
Используйте GetTrackMovieBoundsRgn функционируйте для работы с граничной областью дорожки после того, как матричные преобразования поместят дорожку в систему отображения фильма. SetTrackMatrix и GetTrackMatrix функции позволяют Вам определить матричные преобразования дорожки.
Панель инструментов Фильма обеспечивает несколько функций, влияющих на границы дисплея дорожки. Эти функции работают в системе координат дисплея дорожки, прежде чем будут применены любые другие трансформации дисплея. GetTrackDimensions и SetTrackDimensions функции позволяют Вам устанавливать систему координат дорожки и устанавливать исходный прямоугольник дорожки.
Можно использовать GetTrackBoundsRgn функция для определения граничной области дорожки. GetTrackClipRgn и SetTrackClipRgn функции позволяют Вам работать с областью отсечения дорожки. Можно использовать GetTrackMatte и SetTrackMatte функции для установления матового стекла дорожки. DisposeMatte функция позволяет Вам избавляться от матового стекла, как только Вы закончены с нею.
Работа с громкостью звука
Панель инструментов Фильма позволяет Вам регулировать громкость звука фильмов и дорожек. Объемы дорожки позволяют дорожкам в фильме иметь различные объемы. Объем дорожки масштабируется объемом фильма для создания заключительного объема дорожки. Кроме того, объем фильма масштабируется громкостью звука, возвращающейся Звуковым менеджером GetSoundVol подпрограмма. Таким образом пользователь может управлять полным объемом от Звуковой панели управления.
Объем оценивает диапазон от-1.0 до 1,0. Более высокие значения переводят в более громкий объем. Отрицательные величины указывают отключенный звук объем. Т.е. Панель инструментов Фильма не играет звука для фильмов или дорожек с отрицательными параметрами громкости, но исходный уровень громкости сохраняется как абсолютное значение параметра громкости. Поэтому, если Вы хотите переключить текущее состояние объема, можно инвертировать знак текущего параметра громкости, как показано здесь:
SetMovieVolume ( theMovie, GetMovieVolume(theMovie) ); |
Можно использовать GetMovieVolume и SetMovieVolume функции для работы с объемом фильма.
GetTrackVolume и SetTrackVolume функции позволяют Вам работать с объемом дорожки.
Определение местоположения дорожек фильма и структур носителей
Панель инструментов Фильма обеспечивает ряд функций, помогающих Вашему приложению определить местоположение дорожек фильма и структур носителей. В этом разделе описываются эти функции.
Панель инструментов Фильма идентифицирует дорожки фильма двумя способами. Во-первых, каждая дорожка в фильме имеет значение уникального идентификатора. Это Значение идентификатора уникально в течение жизни фильма, даже после того, как это было сохранено. Т.е. никакие две дорожки фильма никогда не имеют тот же ID, и никакое Значение идентификатора никогда не снова используется. Во-вторых, текущие дорожки фильма могут быть идентифицированы их индексным значением. Индексные значения всегда колеблются от 1 до числа дорожек в фильме. Индексы дорожки обеспечивают удобный способ получить доступ к каждой дорожке фильма.
Существует несколько функций, позволяющих Вам находить дорожки фильма. Можно использовать GetMovieTrackCount функция для определения числа дорожек в фильме. Используйте GetMovieTrack функция для получения идентификатора дорожки для определенной дорожки, учитывая ее ID. GetMovieIndTrack функция позволяет Вам получить идентификатор дорожки учитывая его индекс дорожки.
Можно получить Значение идентификатора дорожки, данное его идентификатор дорожки путем вызова GetTrackID функция.
Можно определить фильм, содержащий дорожку путем вызова GetTrackMovie функция.
GetTrackMedia функция позволяет Вам найти носители дорожки. С другой стороны можно найти дорожку, использующую носители путем вызова GetMediaTrack функция.
Определение создания фильмов и время изменения
Панель инструментов Фильма поддерживает две метки времени в каждом фильме, дорожке и носителях. Когда элемент создавался, одна метка времени, дата создания, указывает дату и время. Когда элемент был в последний раз изменен и сохранен, другой, дата модификации, содержит дату и время. Значение метки времени находится в том же формате как создание файловой системы Macintosh и время изменения; т.е. метка времени указывает число секунд с полуночи 1 января 1904.
Панель инструментов Фильма обеспечивает много функций, позволяющих Вашему приложению получать информацию о дате создания и модификации из фильмов, дорожек и структур носителей.
Можно использовать GetMovieCreationTime и GetMovieModificationTime функции для работы с созданием фильмов и датами модификации.
Можно использовать GetTrackCreationTime и GetTrackModificationTime функции для получения дат создания и модификации дорожки.
Ваше приложение может вызвать GetMediaCreationTime и GetMediaModificationTime функции для получения дат создания и модификации носителей.
Редактирование дорожек
Панель инструментов Фильма обеспечивает много функций, позволяющих Вашему приложению выполнять операции редактирования на дорожках. Эти функции работают с сегментами дорожки (части дорожки, определяющиеся временем начала и продолжительностью), и поэтому дайте Вам большой контроль процессом редактирования. Эти функции подобны низкоуровневым функциям редактирования для фильмов, описанных ранее в этой главе. Однако эти функции могут скопировать данные фильма, при необходимости работой.
При редактировании дорожки, можно изменить продолжительность фильма, содержащего ту дорожку.
CopyTrackSettings функция позволяет Вам скопировать определенные важные настройки от одной дорожки до другого.
Можно использовать InsertTrackSegment функционируйте, чтобы скопировать сегмент от одной дорожки до другого ссылкой или движущимися данными, или скопировать сегмент в дорожке. InsertTrackEmptySegment функция позволяет Вам вставлять пустой сегмент в дорожку.
Можно использовать InsertMediaIntoTrack функционируйте для вставки носителей в дорожку.
Ваше приложение может удалить сегмент из дорожки путем вызова DeleteTrackSegment функция.
Можно изменить продолжительность сегмента путем вызова ScaleTrackSegment функция. Эта функция расширяет или уменьшает сегмент для размещения указанной продолжительности.
Можно использовать GetTrackEditRate функция для устанавливания курса редактирования дорожки указанной дорожки в указанное время.
Отмена для дорожек
Панель инструментов Фильма обеспечивает функции, позволяющие Вам получать и восстанавливать состояние редактирования дорожки. Как с функциями, управляющими состоянием редактирования фильма, можно управлять состояниями редактирования дорожки для реализации возможности отмены редактирования дорожки. Например, можно получить состояние редактирования дорожки прежде, чем выполнить работу редактирования, такую как сокращение и более позднее восстановление старое состояние. У Вас может быть несколько состояний редактирования дорожки, полученных в разное время во время сеанса редактирования, и можно восстановить любому из них в любое время. Этим способом можно обеспечить многоуровневую возможность отмены. В этом разделе описываются функции Панели инструментов Фильма, работающие с состояниями редактирования дорожки.
Обратите внимание на то, что состояние редактирования дорожки не сохраняет все о дорожке. Самый важный, состояние редактирования не содержит информацию о дорожке пространственные характеристики. Например, состояние редактирования не хранит текущую область отсечения. Следовательно, состояния редактирования подходят лучше всего для поддержки операций отмены, включающих содержание дорожки. Можно использовать другие функции Панели инструментов Фильма для поддержки операций отмены для характеристик дорожки. Посмотрите Функции, Изменяющие Свойства Фильма для узнавания больше об этих функциях.
Можно использовать NewTrackEditState функционируйте для получения состояния редактирования дорожки. Используйте UseTrackEditState функционируйте для восстановления дорожки к ее условию согласно предыдущему состоянию редактирования. Ваше приложение может избавиться от состояния редактирования путем вызова DisposeTrackEditState функция.
Выбор и функции фрагмента
Чтобы получить и изменить текущий выбор фильма, Ваше приложение может вызвать GetMovieSelection и SetMovieSelection функции.
Ваше приложение может работать с текущим выбором фильма путем вызова CutMovieSelection, CopyMovieSelection, PasteMovieSelection, ClearMovieSelection, и AddMovieSelection функции.
PutMovieOnScrap и NewMovieFromScrap функции включают Ваше рвение с фильмами, которые находятся на фрагменте.
IsScrapMovie функция исследует системный фрагмент, чтобы определить, может ли это перевести какие-либо из данных в фильм. PasteHandleIntoMovie берет содержание указанного дескриптора, вместе с его типом, и вставляет его в фильм. PutMovieIntoTypedHandle берет фильм (или одноколейный путь из фильма) и преобразовывает его в дескриптор.
Низкоуровневые функции редактирования фильма
Панель инструментов Фильма обеспечивает много функций, позволяющих Вашему приложению выполнять низкоуровневые операции редактирования на фильмах. Эти функции работают с сегментами фильма (части фильма, определяющиеся временем начала и продолжительностью), и поэтому дайте Вам большой контроль процессом редактирования. Эти функции никогда не копируют данные фильма; скорее они работают со ссылками на данные фильма. Редактирование Фильмов обсуждает функции Панели инструментов Фильма, позволяющие Вам редактировать фильмы путем работы с текущим выбором.
Можно использовать CopyMovieSettings функционируйте для копирования определенных важных настроек от одного фильма до другого.
Можно использовать InsertMovieSegment функционируйте для копирования сегмента от одного фильма до другого. Используйте InsertMovieEmptySegment функционируйте для вставки пустого сегмента в фильм.
Ваше приложение может удалить сегмент из фильма путем вызова DeleteMovieSegment функция.
Можно изменить продолжительность сегмента путем вызова ScaleMovieSegment функция. Эта функция расширяет или уменьшает сегмент для размещения указанной продолжительности.
Сводка функций редактирования
Этот раздел перечисляет функции, описанные ранее в этой главе.
Редактирование фильмов
PutMovieOnScrapNewMovieFromScrapSetMovieSelectionGetMovieSelection
Отмена для фильмов
Низкоуровневые функции редактирования фильма
Редактирование дорожек
Отмена для дорожек
Определение местоположения дорожек фильма и структур носителей
Можно счесть подробные данные этих функций в QuickTime Ссылкой API.