Расширение приложения медиапроигрывателя
В этой главе Вы расширяете свой медиапроигрыватель QTKit вне простого проигрывателя, который Вы создали в предыдущей главе. На сей раз, когда завершено, Ваше приложение медиапроигрывателя QTKit позволяет Вам не только отображать и воспроизводить видеофайл или аудиофайл как фильм в формате QuickTime, но также и редактировать содержание того файла ролика. Для реализации этого медиапроигрывателя Вы будете удивлены, снова, в том, как немного строк Objective C кодируют, необходимо будет записать.
Цель этой главы состоит в том, чтобы основываться и расширить Ваше знание методов, доступных в платформе QTKit. Фокус, как в предыдущей главе, идет, как выполнить воспроизведение носителей и, в этом случае, редактирование видео/звукового содержимого максимально эффективно с минимумом кода Objective C и в соответствии с методами для методов наиболее успешной практики в разработке приложений Какао.
Расширьте проект MyMediaPlayer
Расширять проект MyMediaPlayer:
Xcode 3.2 запуска и выбирает File> Open.
Выберите проект MyMediaPlayer, который Вы создали в предыдущей главе, и откройте его.
В Вашем проекте MyMediaPlayer щелкните
MyDocument.h
файл объявления.Объявите a
mMovieView
переменная экземпляра для указания наQTMovieView
Соедините интерфейсом с выходом Разработчика, после строки кода, в котором Вы объявилиmovie
переменная экземпляра, указывающаяQTMovie
объект.IBOutlet QTMovieView *mMovieView;
В этой точке, коде в Вашем
MyDocument.h
файл должен быть похожим на это:#import <Cocoa/Cocoa.h>
#import <QTKit/QTKit.h>
@interface MyDocument : NSDocument
{
QTMovie *movie;
IBOutlet QTMovieView *mMovieView;
}
@property(retain) QTMovie *movie;
@end
Сохраните свой файл.
Это завершает первую стадию Вашего проекта. Теперь Вы используете Интерфейсного Разработчика 3.2 для построения пользовательского интерфейса для проекта.
Создайте пользовательский интерфейс с интерфейсным разработчиком
Соедините интерфейсом с Разработчиком, и XCode разработаны для работы беспрепятственно вместе, позволив Вам создать и реализовать различные элементы в Вашем проекте более эффективно и с меньшим количеством кода наверху.
Разработчик Интерфейса запуска 3.2 и открытый
MyDocument.xib
файл в Вашем окне проекта XCode, в котором Вы создали выполнение шагов в предыдущей главе, Создает Пользовательский интерфейс с Интерфейсным Разработчиком.Перетащите контроль за прессой для обеспечения электричеством Владельца Файла к объекту представления фильма, указав
mMovieView
переменная экземпляра как выход.Выберите Объект окна в
MyDocument.xib
панель.В Инспекторе щелкните по значку атрибутов Окна.
Определите поведение и появление Объекта окна.
Спасите и выйдите из Интерфейсного Разработчика.
Это завершает шаги последовательности для построения Вашего пользовательского интерфейса медиапроигрывателя. В следующей последовательности Вы возвращаетесь к Вашему MyDocument.m
файл реализации для добавления необходимых блоков кода для проекта.
Измените файл реализации в XCode
Изменить файл реализации:
Откройтесь
MyDocument.m
файл и прокручивает вниз к блоку кода, начинающемуся со следующего:- (void)windowControllerDidLoadNib:(NSWindowController *) aController
Для показа управления фильмом увеличивают поле, используют
setShowsResizeIndicator:
метод.Для сокрытия окна изменяют размеры индикатора, таким образом, это не вмешивается в управление фильмом, используйте
setShowsResizeIndicator:
метод.Добавьте следующие строки так, чтобы Ваш код был похож на это:
- (void)windowControllerDidLoadNib:(NSWindowController *) aController
{
[super windowControllerDidLoadNib:aController];
[mMovieView setShowsResizeIndicator:YES];
[[mMovieView window] setShowsResizeIndicator:NO];
}
В блоке кода, начинающемся
readFromURL:ofType:error:
метод, устанавливающий содержание документа путем чтения из файла или пакета файла, указанного типа, расположенного URL, добавляет эту строку:[newMovie setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute];
Удостоверьтесь, что полный блок кода появляется следующим образом:
- (BOOL)readFromURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError
{
QTMovie *newMovie = [QTMovie movieWithURL:absoluteURL error:outError];
if (newMovie) {
[newMovie setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute];
[self setMovie:newMovie];
}
return (newMovie != nil);
}
Путем вызова
setAttribute:forKey:
метод и использованиеQTMovie
доступный для редактирования атрибут, Вы отметили фильм как доступный для редактирования. Это означает, что любые операции редактирования, которые Вы выбираете, такой, как сокращено, копия и вставка, могут быть выполнены на самом фильме. Значение для этого ключа имеет типNSNumber
, интерпретируемый как булево значение. Если фильм может быть отредактирован, значениеYES
. Понимание, как использовать атрибуты, чтобы указать и выполнить определенные задачи, важно в работе с API QTKit. Атрибуты, к которым можно получить доступ в платформе QTKit, обсуждены в следующей главе, Настроив Приложение Медиапроигрывателя.
Это завершает конструкцию и кодирование Вашего расширенного приложения медиапроигрывателя. Теперь Вы готовы создать и скомпилировать приложение в XCode.
Создайте и скомпилируйте свое приложение медиапроигрывателя
После того, как Вы завершили эти шаги, запускаете Ваш медиапроигрыватель в XCode, открытом, и выводите на экран фильмы в формате QuickTime и выполняете редактирование на тех фильмах.
В XCode, сборке и запущенный приложение медиапроигрывателя. В Файле> Открытый, выберите фильм и откройте его. Фильм абсолютно доступен для редактирования с панелью ползунка для редактирования.
Получить доступ к особенностям редактирования проигрывателя или управлять воспроизведением, останавливаясь или запуская демонстрационный фильм, щелчок управления где угодно в фильме. Контекстное меню появляется.
Сводка
В этой главе Вы учились как:
Расширьте функциональность
MyMediaPlayer
приложение, позволяя Вам открыться, играет и редактирует фильмы в формате QuickTime или аудиофайлы.В коде отметьте фильм, столь же «доступный для редактирования», чтобы выполнить операции редактирования такой, как сокращено, скопировать и вставить при помощи
setAttribute:forKey:
метод.Укажите, что контроллер фильма увеличивает поле, с помощью
setShowsResizeIndicator:
метод и скрывается, окно изменяют размеры индикатора, с помощьюsetShowsResizeIndicator:
метод.