Урок 6: Добавление звука в программу, глава 1

Данный урок был написан пользователем Стивеном Мерити (ака Smerity), которому стоит сказать «большое спасибо» за его большой вклад.
Кроме того, большая благодарность выражается и Джону К. за подключение libmad к PSP и за разработку PSPMediaCenter (из которого я использовал часть кода). А также отдельное спасибо Seventoes, который оставил пост на PS2Dev.org, попросив о помощи с кодом libmad, необходимым для нашей программы.
Данные учебные материалы представляют собой простое пошаговое руководство, касающееся проигрывания музыки в ваших программах. Звук FX и фоновая музыка – два аспекта, которые придают приложению утонченный стиль. Однако в большинстве случаев на них не обращают внимания. Является ли это спешкой разработчика по причине быстрого выпуска товара или неумением добавить звук (или отсутствием подходящей музыки к их приложению). Не известно. Мы надеемся, что данное учебное руководство поможет людям сделать свои приложения звуковыми.
Первым необходимым шагом станет скачивание libmad из SVN. libmad является MPEG audio decoder (декодером для звуковых файлов) и выпущен под лицензией GPL, а затем был портирован на PSP Джоном К.
Чтобы осуществить это, откройте Cygwin и введите путь к файлу:

[i]svn://svn.ps2dev.org/psp/trunk/libmad[/i]


Когда пакет будет загружен, вы должны увидеть длинный список имен файлов. Теперь мы перейдем в каталог libmad и скомпилируем библиотеку:

cd libmad
make

Следующая часть программы является отклонением от того, что мы использовали в уроке 4. Обычно вы применяли «make install «, и все автоматически устанавливалось: файлы в соответствующие каталоги. К сожалению, установка скрипта libmad невозможна в настоящее время. Не волнуйтесь, мы можем установить все вручную:

cp -Rf./include /usr/local/pspdev/psp/
cp -Rf./lib/libmad.a /usr/local/pspdev/psp/lib

Примечание: Имеется пробел между «./include» и «/usr… «, а также между «libmad.a» и «/usr… «

Эта операция позволяет скопировать все файлы в их соответствующее место. Флаг «-Rf» заменяет «Recursive» и «final «. Он подтвердит то, что вы копируете, и исключит ошибки (о которых некоторые пользователи сообщали, как о проблеме в отсутствии флагов).
(Пользователям MinPSP проще, так как все необходимые файлы можно найти в папке C:\\pspsdk\\)

Далее скачаем и извлечем некоторые необходимые файлы в новую папку проекта. Внутри два файла (mp3player.c и mp3player.h), которые были получены из PSPMediaCenter Джоном К. Я произвел небольшие изменения в файлах следующим образом (вам ничего не нужно делать, просто на всякий случай, если вы спросите):

//Не добавляете это в вашу программу
//Это пример кода
mp3player.c
Строка 76 — /* void void MP3setStubs to end of function */ — характерна для заглушки, посмотрите mp3player.h

mp3player.h
Строка 10 — #include "../../codec.h" – характерна для [b]PSPMediaCenter[/b]
Строка 17 — void MP3setStubs(codecStubs * stubs); — характерна для [b]PSPMediaCenter[/b]


Нужно сказать, что ранее такое не применялось. Джон К. сделал огромный вклад в портатировании.

Теперь вернемся к функции. Создаем main.c в выбранном вами редакторе и начинаем с ваших комментариев:

// Образец Mp3-проигрывателя на PSP
// *Ваше имя здесь*

Следующий шаг должен быть вам знаком. Новое только «pspaudio.h» и «pspaudiolib.h.» Эти заголовочные файлы необходимы для определенных аудио-функций, которые мы будем использовать в нашей программе:

#include <pspkernel.h>
#include <pspctrl.h>
#include <pspdebug.h>
#include <pspaudio.h>
#include <pspaudiolib.h>
#include <psppower.h>
#include "mp3player.h"

PSP_MODULE_INFO("Пример Mp3-плеера", 0, 1, 1);
#define printf pspDebugScreenPrintf

Заметьте, что мы включили один из загружаемых вами файлов: «mp3player.h» (убедитесь, что этот файл находится в то же самом каталоге, что и исходный файл). Также мы определили printf и создали наш PSP_MODULE_INFO.

Продолжение данного урока во второй части.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: