Paint Book - редакторы графики для iPhone (Часть 3) Уроки iPhone SDK: Утечки памяти в iPhone. Изучаем инструментом “Leaks”
Май 19

Закончим эту серию статей, добавив к игре звуковое сопровождение. Поскольку это уроки для новичков, я не буду вдаваться в связанные с OpenAL и Audio Queues сложности. Сегодня мы займемся воспроизведением коротких звуков (менее 30 с). При отсутствии потребности в фоновой музыке это самый простой способ работы с аудио. (Конечно, можно было бы поставить 30-секундный фрагмент на циклическое воспроизведение, но до такого позора мы не опустимся.)
Проблема при таком подходе заключается в том, что одновременно может проигрываться не более одного аудиофайла. Что ж, приступим… Нам понадобится код прошлого урока который мы можно скачать по [этой ссылке] (воспользуйтесь своим или загрузите новый вариант). Сегодня мы будем работать с двумя звуками: один — для удара по мячу, второй — для набранного очка.

Вот звуковые файлы, которые нам потребуются:

Обратите внимание на расширение звуковых файлов — .caf . Для воспроизведения в iPhone это единственный приемлемый вариант. Поэтому Apple предусмотрела специальную утилиту для преобразования аудио в данный формат. Подробнее о ней можно прочесть [здесь]. Все достаточно просто - открываете терминал и вводите:

/usr/bin/afconvert -f caff -d LEI16 {INPUT} {OUTPUT}

где {INPUT} — путь к исходному аудиофайлу, а {OUTPUT} —файл, который будет сохраняться с расширением .caf.

Добавление к проекту аудиофайлов.

Для начала загрузите два файла и перетащите их в папку “Resources” внутри проекта. Если привыкли к порядку, создайте для них подпапку “Audio“. Обратите внимание, что опция копирования файлов в папку проекта должна быть помечена флажком.

screenshot_012

Добавляем к проекту “AudioToolbox.framework”.

Поскольку к функциям мы будем обращаться именно через эту инфраструктуру, добавим к проекту и ее. Лучший способ обнаружит фреймворк на моем Mac — выполнить поиск. Щелкнув правой кнопкой на папке проекта “Frameworks“, выполните Add -> Existing Frameworks. В окне поиска наберите “AudioToolbox.framework” и после вывода результатов выделите нужный объект. (Поиск должен проводиться по всему компьютеру.)

screenshot_022

Обнаружив искомый элемент, щелкните на кнопке “Add“. Можно приступать к программированию…

Добавляем описание заголовка.

Откройте файл “iTennisViewController.h” и добавьте код, как показано ниже.

screenshot_111

Сначала выполняется импорт “AudioServices.h“. Это необходимо для вызова отвечающих за воспроизведение звуков функций. Следующим шагом декларируем два объекта “SystemSoundID“. В принципе это просто целые числа (можно было бы воспользоваться “int“, но в этом случае появляется предупреждение). Теперь открываем “iTennishViewController.m” и добавляем синтезирующий эти переменные код.

screenshot_09

Настало время инициализировать наши звуковые объекты. Перейдите к методу “viewDidLoad” и добавьте представленный ниже код:

screenshot_12

Все довольно просто. Первая строка получает путь к аудиофайлу. Следующая — преобразовывает его в “CFURLRef“. После этого загружаем нужный файл и привязываем его к конкретному идентификатору звука. Обратите внимание: мы передаем “&clappingFileID“. Передача параметров по ссылке (pass by reference) позволяет методу “AudioServicesCreateSystemSoundID” модифицировать эту переменную. Аналогичным способом загружаем звук удара по мячу. Теперь их можно воспроизвести.

Воспроизведение звуков.

Прослушать загруженные звуки очень просто. Вызываете метод “AudioServicesPlaySystemSound” и передаете ему звуковой идентификатор “soundID” нужного файла. Чтобы при изменении счета слышались овации, добавьте к методу “reset” приведенный ниже код:

screenshot_141

Заметьте - передаваемый идентификатор “clappingFileID” указывает, что необходимо воспроизвести звук оваций. Чтобы при попадании ракеткой по мячу слышался звук удара, добавляем к “gameLoop” указанный ниже код.

screenshot_151

Ничего сложного. Кнопкой “Build and Go” запускаем приложение и проверяем звук в игре. Урок окончен. Всем спаибо за внимание. Не забываем оставлять комментарии.

Исходный код скачать можно [здесь]

Текст оригинальной статьи на английском языке [здесь]

Уважаемые читатели, данный материал был переведен и подготовлен к публикации проектом LookApp.ru, при публикации на другом сайте ссылка на LookApp.ru обязательна.

1 звезда2 звезд3 звезд4 звезд5 звезд (Оцените приложение)
Загрузка ... Загрузка ...

One Ping to “Уроки iPhone SDK: (Часть 4) Программирование игр на iPhone. “Пишем” игру iTennis. Добовляем звук.”

  1. Звук Says:

    [...] 11:10 Привет всем!беру пример с этого сайта http://lookapp.ru/2009/05/19/iphone-sdk-tutorials17/ гружу на iphone а звука нет что может быть? Страницы [...]


Оставьте комментарий