Создавание простого приложения медиапроигрывателя QTKit
В этой главе Вы создаете приложение медиапроигрывателя QTKit, использующее в своих интересах некоторые самые полезные методы и классы, доступные в платформе QTKit. Для реализации этого медиапроигрывателя Вы будете удивлены тем, как немного строк Objective C кодируют, необходимо будет записать.
Создайте проект Используя Xcode 3.2
Создать проект:
Xcode 3.2 запуска и выбирает File> New Project.
Когда новое окно проекта появится, выберите OS X> Application> Cocoa Application.
В панели Options проверка Создает основанное на документе приложение, затем нажимает Choose.
Это создает Основанное на какао приложение, записанное в Objective C, использующем
NSDocumentархитектура.

Назовите проект
MyMediaPlayerи перейдите к расположению, где Вы хотите, чтобы приложение XCode создало папку проекта.Окно проекта XCode появляется.


Проверьте что файлы в Вашем соответствии проекта те на иллюстрации.
Обратите внимание на то, что значки, представляющие обоих
MyDocument.xibиMainMenu.xibперья имеют расширение.xib, который указывает, что Ваш проект использует Интерфейсного Разработчика 3xx. xib формат файла предпочтен во время разработки, потому что это обеспечивает различно-способный текст и SCM-дружественный формат. Во время изготовления XCode автоматически преобразовывает xib файлы Вашего проекта в файлы пера так, чтобы они могли быть развернуты с Вашим приложением. Если у Вас есть существующие файлы пера, однако, можно также продолжать сохранять к тому же самому формату.Добавьте платформу QTKit к своему проекту MyMediaProject.
Из Меню действий в Вашем проекте XCode выберите Add> Add to Existing Frameworks.


В
/System/Library/Frameworksкаталог, выбратьQTKit.framework.
Нажмите панель Target «MyMediaPlayer» Info и проверьте, что Вы соединились с QTKit.framework и Типом
Requiredвыбран, как показано на иллюстрации.
В том же окне Info Target «MyMediaPlayer» выберите Кнопку свойства и откройте область Properties.
Выберите строку DocumentType. В столбце Extensions войти
mov, и в столбце OS Types, войтиMooV.
В строке DocumentType выбрать
Binaryот Типа Хранилища иViewerиз выпадающего меню Role.
Это завершает первую основную последовательность шагов в Вашем проекте. В следующих нескольких последовательностях Вы объявляете методы экземпляра, в которых Вы нуждаетесь в XCode прежде, чем работать с Интерфейсным Разработчиком.
Импортируйте заголовок QTKit и укажите Ваш проект
В объявлении (.h) файл Вашего проекта XCode, Вы импортируете заголовочный файл QTKit и объявляете переменную экземпляра (movie).
В окне проекта XCode для MyMediaPlayer откройтесь
MyDocument.h.После оператора импорта файла для Какао добавьте оператора импорта для QTKit.
Ваш код должен быть похожим на это:
#import <Cocoa/Cocoa.h>
#import <QTKit/QTKit.h>
Объявите переменную экземпляра
movieэто указывает наQTMovieобъект.{QTMovie *movie;
}
Строка возвращается
QTMovieвозразите привязке фильма с позже.Объявите сохраненную ссылку на a
QTMovieэкземпляр, с помощью@propertyдиректива.@property(retain) QTMovie *movie;
В этой точке, коде в Вашем
MyDocument.hфайл должен быть похожим на это.#import <Cocoa/Cocoa.h>
#import <QTKit/QTKit.h>
@interface MyDocument : NSDocument {QTMovie *movie;
}
@property(retain) QTMovie *movie;
@end
Сохраните файл.
Считайте фильм в формате QuickTime данные
В реализации (.m) файл проекта XCode, Вы устанавливаете содержание своего документа фильма.
Откройтесь
MyDocument.mфайл реализации.Установите расположение URL для получения содержания Вашего документа фильма и используйте
setMovie:метод для установки фильма документа, чтобы бытьQTMovieвозразите, что Вы просто создали.Прокрутите вниз к блоку кода, включающему
- (BOOL)readFromData:метод.Замените тот блок кода следующим кодом на следующем шаге.
- (BOOL)readFromURL:(NSURL *)absoluteURL ofType:(NSString *)typeName error:(NSError **)outError
{QTMovie *newMovie = [QTMovie movieWithURL:absoluteURL error:outError];
if (newMovie) {[self setMovie:newMovie];
}
return (newMovie != nil);
}
Добавьте
@synthesizeдиректива для генерации методов получателя и методов установщика Вам нужно и завершать Вашу реализацию.@synthesize movie;
Освободите память.
-(void)dealloc
{if (movie) {[movie release];
}
[super dealloc];
}
Сохраните свой файл.
Это завершает второй этап Вашего проекта. Затем, Вы создаете пользовательский интерфейс для своего Разработчика Интерфейса использования проекта 3.2.
Создайте пользовательский интерфейс с интерфейсным разработчиком
Создать пользовательский интерфейс:
Разработчик интерфейса запуска 3.2.
Откройтесь
MyDocument.xibфайл.Из-за интеграции между Xcode 3.2 и Интерфейсным Разработчиком 3.2, методы Вы объявили в Вашем
MyDocument.hфайл был синхронно обновлен в Интерфейсном Разработчике 3.2.В Интерфейсном Разработчике 3.2, выберите Tools> Library для открытия библиотеки сменных средств управления.
Прокрутите вниз, пока Вы не найдете фильм в формате QuickTime управление Представлением в библиотеке объектов.

QTMovieViewобъект предоставляет Вам экземпляр подкласса представления для отображения фильмов в формате QuickTime, предоставляющихсяQTMovieобъекты в Вашем проекте.Выберите текстовый объект «Your document contents here» в окне и нажмите Delete.
Перетащите
QTMovieViewобъект от библиотеки в Ваше окно и изменяет размеры объекта соответствовать окну.Обратите внимание на то, что объект комбинирует и представление и управление для воспроизведения носителей.
Измените атрибуты представления фильма.
Выберите Tools> Inspector.
В панели Inspector выберите значок Movie View Attributes, появляющийся как первый значок в строке наверху панели.
Удостоверьтесь, что проверяется флажок Show Controller.


Установите автокалибровку для
QTMovieViewобъект в Размере Представления Фильма, как показано на иллюстрации.
Подключите объект видеоклипа к фильму в формате QuickTime, который будет выведен на экран. Вы делаете это путем определения привязки Какао:
В
QTMovieViewИнспектор (выбираютQTMovieViewи откройтесь «Сдвигом Команды, я», в случае необходимости), перейдите к панели Bindings. (Можно также получить доступ к нему путем выбора Tools> Bindings Panel.)В разделе Parameters панели Bindings откройте параметр фильма путем щелчка по треугольнику раскрытия рядом с ним.
В “Связывают с”: выпадающее меню, выберите File's Owner.
В Ключевом Поле трактов Модели введите текст
movie.
Проверьте, “Связывают с”: флажок для сохранения настроек.
В этом случае, путем указания привязки выше, Вы дали Какао команду по существу создавать соединение во время выполнения между объектом, загружающим пользовательский интерфейс – т.е. объект Владельца Файла – и
QTMovieViewобъект. Это соединение обеспечиваетQTMovieViewобъект со ссылкой на фильм в формате QuickTime, который должен быть открыт и выведен на экран.Сохраните Ваш
MyDocument.xibфайл в Интерфейсном Разработчике и возвращается к Вашему проекту XCode.
Это завершает конструкцию пользовательского интерфейса и кодирование Вашего медиапроигрывателя. Теперь Вы готовы создать и скомпилировать приложение в XCode.
Создайте и скомпилируйте свой проект в XCode
Прежде чем Вы создадите и скомпилируете свой проект, необходимо указать, что проигрыватель откроет фильмы в формате QuickTime, т.е. фильмы с расширением .mov. Вы выполняете это следующим образом:
В Вашем проекте XCode выберите Targets> MyMediaPlayer> Properties
В области Document Types войти
movв поле Extensions.Войти
MooVв поле OSTypes.Войти
MyDocumentв поле Class.Укажите тип хранилища как двоичный файл и роль средства просмотра.
Теперь Вы готовы создать и выполнить проект MyMediaPlayer в XCode. Когда проигрыватель запускается, можно открыть и играть любой фильм в формате QuickTime по Вашему выбору. Просто найдите a .mov файл и запуск фильм из меню File> Open в Вашем приложении медиапроигрывателя.
Сводка
В этой главе Вы учились как:
Создайте Какао основанное на документе приложение, позволяющее Вам открыть и играть фильмы в формате QuickTime меньше чем с десятью строками кода Objective C.
Создайте пользовательский интерфейс приложения в Интерфейсном Разработчике 3.2.
Работа с Привязкой Какао для создания соединения во время выполнения между объектом, загружающим пользовательский интерфейс и объект, выводящий на экран и воспроизводящий фильм в формате QuickTime.