13.0. Введение

13.0. Введение

Большинство устройств с операционной системой iOS, допустим iPhone, оборудованы камерами. У самого нового iPhone две камеры, у других моделей может быть всего по одной. Некоторые устройства с операционной системой iOS не оснащены камерами. Класс UIImagePickerController позволяет программисту отображать для пользователя привычный интерфейс Camera и предлагать сделать снимок или записать видео. Фотографии или видеозаписи, выполненные с помощью класса UIImagePickerController, становятся доступны программисту.

В этой главе будет рассказано, как обеспечить пользователю возможность снимать фотографии и записывать видео прямо из приложения, получать доступ к фотографиям и видео, размещенным в библиотеке фотографий (Photo Library) на устройстве с iOS, например на iPod touch или iPad.

В симуляторе iOS интерфейс Camera не поддерживается. Все приложения, в которых требуется применять этот интерфейс, следует тестировать и отлаживать на настоящем устройстве с iOS, которое оборудовано камерой.

В этой главе мы сначала попытаемся определить, имеется ли камера на том устройстве с iOS, где используется наше приложение. Кроме того, вы можете выяснить, позволяет ли камера вам (программисту) делать фотоснимки, записывать видео или доступны обе эти функции. Для этого необходимо добавить фреймворк MobileCoreServices.framework к целевой сборке. Просто импортируйте его обобщающий фреймворк в ваше приложение, вот так:

#import «AppDelegate.h»

#import <MobileCoreServices/MobileCoreServices.h>

@implementation AppDelegate

<# Остаток вашего кода находится здесь #>

Далее перейдем к изучению других тем, в частности рассмотрим доступ к видео и фотографиям, расположенным в различных альбомах на устройстве с iOS. Речь идет о тех же самых альбомах, в которые можно попасть через приложение Photos (Фотографии), интегрированное в операционную систему iOS.

Но получить доступ к фотографии, находящейся в альбоме, проще, чем к видеозаписи. При работе с фотографиями мы получим адрес снимка и сможем просто загрузить эту информацию об изображении в экземпляр NSData либо прямо в экземпляр UIImage. В аналогичном случае с видео мы не получим адрес, по которому файл находится в файловой системе и с которого можно загрузить нужное видео. Вместо этого получим примерно такой адрес:

assets-library://asset/asset.MOV?id=10000 00004&ext=MOV

При работе с подобными адресами необходимо использовать фреймворк Assets Library (Библиотека ресурсов). Библиотека ресурсов открывает нам доступ к контенту, который обычно предоставляется через приложение Photos (Фотографии). Это, например, фотографии и видеоролики, отснятые пользователем. Кроме того, библиотека ресурсов может применяться для сохранения изображений и видео на устройстве. Потом эти фотографии и ролики будут доступны для библиотеки фотографий (Photo Library), а также других приложений, которым требуется доступ к этому контенту.

Чтобы все коды из этой главы правильно компилировались, убедитесь, что фреймворки Assets Library и Mobile Core Services включены во все ваши файлы с исходным кодом. Для этого можно импортировать заголовочные файлы в файлы с исходным кодом. Предполагается, что вы работаете с последней версией компилятора LLVM, в котором поддерживается работа с модулями:

#import «AppDelegate.h»

#import <MobileCoreServices/MobileCoreServices.h>

#import <AssetsLibrary/AssetsLibrary.h>

@implementation AppDelegate

<# Остаток вашего кода находится здесь #>

Чтобы все коды из этой главы правильно компилировались, выполните следующие шаги — так вы добавите в ваш проект фреймворк Assets Library.

1. В Xcode щелкните на ярлыке проекта.

2. Выберите цель, к которой вы хотите добавить фреймворк.

3. В верхней части интерфейса выберите Build Phases (Этапы сборки).

4. Нажмите кнопку + в нижнем левом углу раздела Link Binaries with Libraries (Связать двоичные файлы с библиотеками).

5. Выберите из списка фреймворк MobileCoreServices.framework.

6. Нажмите Add (Добавить).

Чтобы получить доступ к данным ресурса, имея ссылку на этот ресурс, выполните следующие шаги.

1. Выделите и инициализируйте объект типа ALAssetsLibrary. Объект из библиотеки ресурсов предоставляет специальную перемычку (Bridge), обеспечивающую доступ к тем видеороликам и фотографиям, которые доступны для приложения Photos (Фотографии).

2. Для доступа к ресурсу воспользуйтесь методом экземпляра assetForURL: resultBlock: failureBlock, относящимся к объекту библиотеки ресурсов (выделение и инициализация этого объекта были выполнены на шаге 1). Ресурс может представлять собой изображение, видео или любой другой объект, который Apple потенциально может добавить в библиотеку фотографий. Этот метод работает с блоковыми объектами. Подробнее о блоковых объектах и GCD рассказано в главе 7.

3. Высвободите тот объект библиотеки ресурсов, который был выделен и инициализирован на шаге 1.

На этом этапе у вас может возникнуть вопрос: как же именно я получаю доступ к данным ресурса? Параметр resultBlock метода экземпляра assetForURL: resultBlock: failureBlock, относящегося к объекту библиотеки ресурсов, должен указывать на блоковый объект, принимающий единственный параметр типа ALAsset. ALAsset — это класс, предоставляемый в библиотеке ресурсов, он инкапсулирует (включает в себя) ресурс, доступный для Photos (Фотографии) или любого другого приложения iOS, пытающегося использовать этот ресурс. Тема сохранения фотоснимков и видеороликов в библиотеке фотографий более подробно рассмотрена в разделах 13.4 и 13.5. О получении фотографий и видео из библиотеки фотографий и библиотеки ресурсов подробнее рассказано в разделах 13.6 и 13.7.

Данный текст является ознакомительным фрагментом.



Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Введение

Из книги автора

Введение Области применения трехмерного компьютерного моделирования необычайно широки. Кого-то интересует создание персонажей, кто-то мечтает построить виртуальный город, кто-то работает в игровой индустрии, а кто-то занимается наружной рекламой. Трехмерное


10.0. Введение

Из книги автора

10.0. Введение Потоки (streams) являются одной из самых мощных (и сложных) компонент стандартной библиотеки С++. Их применение при простом, неформатированном вводе-выводе в целом не представляет трудностей, однако ситуация усложняется, если необходимо изменить формат с помощью


11.0. Введение

Из книги автора

11.0. Введение Язык программирования C++ хорошо подходит для решения научных и математических задач из-за своей гибкости, выразительности и эффективности. Одно из самых больших преимуществ применения C++ для выполнения численных расчетов связано с тем, что он помогает


12.0. Введение

Из книги автора

12.0. Введение В данной главе даются рецепты написания многопоточных программ на C++ с использованием библиотеки Boost Threads, автором которой является Вильям Кемпф (William Kempf). Boost — это набор переносимых, высокопроизводительных библиотек с открытым исходным кодом, неоднократно


13.0. Введение

Из книги автора

13.0. Введение В данной главе приводятся решения некоторых задач, которые обычно возникают при интернационализации программ С++. Обеспечение возможности работы программы в различных регионах (это обычно называется локализацией), как правило, требует решения двух задач:


14.0. Введение

Из книги автора

14.0. Введение Язык XML играет важную роль во многих областях, в том числе при хранении и поиске информации, в издательском деле и при передаче данных по сетям; в данной главе мы научимся работать с XML в С++. Поскольку эта книга больше посвящена С++, чем XML, я полагаю, вы уже имеете


15.0. Введение

Из книги автора

15.0. Введение В этой главе рассматриваются некоторые аспекты C++, которые плохо вписываются в тематику любой другой главы: указатели функций и членов, константные переменные и функции- члены, независимые операторы (т.е. не члены класса) и несколько других


Введение

Из книги автора

Введение По своей популярности пакет офисных приложений Microsoft Office может сравниться, пожалуй, лишь с операционной системой Windows. Его активно используют школьники и студенты, бухгалтеры и топ-менеджеры, ИТ-специалисты и писатели, руководители и офисные сотрудники. Сегодня


Введение

Из книги автора

Введение В своей первой книге, "Delphi. Только практика", автор рассматривал примеры различных интересных программ. Эта книга является продолжением первой книги. Продолжением, поскольку исходные коды программ, которые рассматриваются в первой и второй книге, не повторяются.


Введение

Из книги автора

Введение MySQL – это система управления базами данных (СУБД) с открытым кодом. Это высокопроизводительная и масштабируемая СУБД с множеством программных интерфейсов. Она обладает огромными функциональными возможностями и подходит для решения самых разных задач.Данная


Введение

Из книги автора

Введение Я помню время, много лет тому назад, когда я предложил издательству Apress книгу, посвященную еще не выпущенному на тот момент пакету инструментальных средств разработки под названием Next Generation Windows Services (NGWS - сервисы Windows следующего поколения). Вы, наверное, знаете,


Введение

Из книги автора

Введение Трудно представить себе компьютер, на котором не установлен Microsoft Office. Этот пакет включает программы, с помощью которых решаются многие повседневные задачи студентов, бухгалтеров, инженеров, менеджеров. Можно было бы перечислить еще огромное количество


Введение

Из книги автора

Введение Вы уже знакомы с STL. Вы умеете создавать контейнеры, перебирать их содержимое, добавлять и удалять элементы, а также использовать общие алгоритмы — такие, как find и sort. Но вы никак не можете отделаться от впечатления, что используете лишь малую часть возможностей


Введение

Из книги автора

Введение Это не совсем книга. Просто по ходу работы и изучения пакета у меня накопилось немало заметок, которые я в конце концов собрал воедино и опубликовал с оглавлением и под единым названием.Данные заметки относятся к версиям 4 и 5 пакета MySQL. По ходу текста особо


Введение

Из книги автора

Введение Правильно организованное делопроизводство – залог удачного бизнеса, поэтому эффективности этой составляющей всегда уделялось большое внимание. С появлением компьютерных технологий в делопроизводстве произошла настоящая революция. Работать с документами


Введение

Из книги автора

Введение Если вы никогда раньше не работали в Photoshop, но мечтаете научиться его использовать, считайте, что вам повезло – первый шаг к этому вы уже сделали, купив данную книгу. Если же вы все-таки боитесь того, что вам никогда не разобраться со всеми этими кнопками, панелями