Создавание простого приложения медиапроигрывателя 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.