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

Это третья, заключительная, часть урока, написанного Стивеном Мерити (ака Smerity). Если вы попали на данную страницу, не прочитав первую и вторую части, то вернитесь и начните сначала.
В этом разделе мы расскажем о некоторых опциях, а также о механизме функционирования простого интерфейса пользователя. Итак:

while(1) {
sceCtrlReadBufferPositive(&pad, 1);
if(pad.Buttons & PSP_CTRL_CROSS) {
break;
} else if(pad.Buttons & PSP_CTRL_CIRCLE) {
MP3_Pause();
for(i=0; i<10; i++) {
sceDisplayWaitVblankStart();
}
}

if (MP3_EndOfStream() == 1) {
MP3_Stop();
}
}

Поговорим о кнопках, которые мы затронули в уроке 3. Если нажать кнопку [X], то мы выйдем из цикла (и фактически, из самой программы). Если пользователь нажмет [O], то проигрывание музыки приостановится благодаря функции MP3_Stop (). В заключении проверим функцию MP3_EndOfStream() для того, чтобы посмотреть, закончилось ли проигрывание MP3 -файла. Функция возвратит «1» в случае окончании музыки и «0» в случае проигрывания. Если музыка завершилась, то мы останавливаем воспроизведение, чтобы сохранить заряд батареи.

Затем введем некоторый код wrapup после выхода пользователя из цикла:

MP3_Stop();
MP3_FreeTune();

sceKernelSleepThread();

return 0;
}

Для завершения нашей программы сначала остановим аудио-файл и после этого освободим ту часть памяти музыкального файла, которую мы использовали. Освобождение памяти довольно существенно для этой программы (когда программа завершается, в любом случае память освобождается), что также немаловажно для других «доморощенных» программ. Если вы не освободите память, то после завершения MP3-файла не будут доступны другие функции.

Именно для вашего файла С. Просто, правда? Теперь мы двигаемся дальше, к созданию важного Makefile \’а. Помните, что Makefile не имеет никакого разрешения (ни.exe,.doc,.txt,.tar, и т.д.). Главным изменением является добавление новых библиотек. «lmad» – для включения libmad и для декодирования Mp3. «pspaudiolib» и «pspaudio» открываю доступ к аудио-средствам PSP (например, к динамикам).

TARGET = mp3
OBJS = mp3player.o main.o
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
LIBDIR =

LIBS = -lmad -lpspaudiolib -lpspaudio -lpsppower
LDFLAGS =
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = MP3 Player Example
PSPSDK=$(shell psp-config —pspsdk-path)
include $(PSPSDK)/lib/build.mak

Теперь все это необходимо включить в Cygwin, затем найти нашу папку проекта и ввести волшебное слово «make» (или для встроенного микропрограммного обеспечения Версии 1.50 —» make kxploit» с целью создания двух папок).

Вы должны будете скопировать ваш «test.mp3» в папку, где будет находиться ваша программа для PSP. Для того чтобы загрузить данный файл во время работы программы. В встроенном микропрограммном обеспечении версии 1.50 он находится в папке (без «%» в конце). Убедитесь, что скорость передачи вашего MP3 меньше чем или равна 160 кбит/с. Иначе возникнет ошибка «recoverable frame level error (lost synchronization) «. Если ваш звуковой файл все еще играет, то ни о чем не волнуйтесь. Сейчас вы можете просто запустить приложение и наслаждаться вашей музыкой!

Не забудьте подписаться на RSS нашего сайта (или хотя бы занести сайт в закладки в браузере), чтобы быть в курсе и не пропустить обновления нашего курса.

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


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



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