Tutoriels PSP – Lire un MP3 avec la LibGE

NulPassableMoyenBienTrés bien (3 votes, average: 5,00 out of 5)
Loading ... Loading ...
tutopsp

Aujourd’hui nous allons vous apprendre à lire une musique au format MP3 avec la LibGE. Dans ce tutoriel nous traiterons uniquement les MP3 et non les sons au format .wav que nous traiterons dans un prochain tutoriel. Vous allez voir, c’est très simple !

Nous vous recommandons de lire (ou relire) les tutoriels suivants afin que vous ayez de bonnes bases pour la suite des tutoriels.

 

 

Les tutoriels à savoir :

Bien, si vous savez tous cela, il ne vous reste plus que les fonctions à connaitre pour vous lancer dans de beau Homebrew avec de beau fond sonore !

Les fonctions à connaitre sont :

ge_Music* geLoadMusic(const char* fichier);
void geMusicPlay(ge_Music* musique);
void geMusicPause(ge_Music* musique);
void geMusicStop(ge_Music* musique);

Pas de panique, je vous explique.

La fonction ge_Music* geLoadMusic sert à « Appeler » la musique.
Par exemple:

ge_Music* geLoadMusic = MusicTest("Musique/Music.mp3");

On pourrait traduire ce code par : « Je charge le fichier Music.mp3 situé dans le dossier « Musique » de ma PSP »

Ensuite, la fonction void geMusicPlay(ge_Music* musique); sert à « Lancer » la musique.
Par exemple:

if(pad->pressed[GEK_CROSS] && !oldpad->pressed[GEK_CROSS])
geMusicPlay(MusicTest)

On pourrait traduire ce code par : « Si on appuie sur X, la musique débute. »

La fonction void geMusicPause(ge_Music* musique); sert à mettre « Pause ou Reprendre » la musique.
Par exemple:

if(pad->pressed[GEK_SQUARE] && !oldpad->pressed[GEK_SQUARE])
geMusicPause(MusicTest);

On pourrait traduire ce code par : « Si on appuie sur [] la musique se met en pause. ou Si on appuie sur [] la musique se remet à jouer. »

Et enfin, la fonction void geMusicStop(ge_Music* musique); sert à  » Arrêter » la musique.
Par exemple:

if(pad->pressed[GEK_CIRCLE] && !oldpad->pressed[GEK_CIRCLE])
geMusicStop(MusicTest);

On pourrait traduire ce code par : « Si on appuie sur O la musique s’arrête. »

Voila, normalement les personnes ayant bien lut les tutoriels précédents savent utiliser ses fonctions. Mais je vais mettre un code d’exemple commenté :

#include <libge/libge.h>

///////////////////////////////////////////////////////////////////
//Tutoriel de PSdev.fr - Communauté de développeurs Playstation///
/////////////////////////////////////////////////////////////////

GE_PSP_INFO("Tutoriel Musique", 1, 0, 1024);
 
int main()
{
    geInit();
     
    ge_Keys *pad = geCreateKeys(), *oldpad = geCreateKeys();
    ge_Music *MusicTest = geLoadMusic("Music.mp3"); // Chargement de la musique
    ge_Font *intraFont = geLoadIntraFont("flash0:/font/ltn0.pgf"); // Chargement de la police (police intrafont ici)
     
    while(1)
    {
        geClearScreen();
        memcpy(oldpad, pad, sizeof(pad));
        geReadKeys(pad);
                                       
        geIntraFontPrintScreen(0,  0, intraFont, "Appuyez sur X pour démarrer la musique", RGB(255, 255, 255));
        geIntraFontPrintScreen(0, 12, intraFont, "Appuyez sur O pour Stopper la musique", RGB(255, 255, 255));
        geIntraFontPrintScreen(0, 24, intraFont, "Appuyez sur /\ pour mettre en pause la musique", RGB(255, 255, 255));
        geIntraFontPrintScreen(0, 36, intraFont, "Appuyez sur [] pour redémarrer la musique", RGB(255, 255, 255));
                                       
        if(pad->pressed[GEK_CROSS] && !oldpad->pressed[GEK_CROSS])//SI on appuit sur X, la musique debute
        {
            geMusicPlay(MusicTest);
        }
        if(pad->pressed[GEK_SQUARE] && !oldpad->pressed[GEK_SQUARE]) //SI on appuit sur [] la musique se met en pause
        {
            geMusicPause(MusicTest);
        }
        if(pad->pressed[GEK_TRIANGLE] && !oldpad->pressed[GEK_TRIANGLE]) //SI on appuit sur /\ la musique redémarrre
        {
            geMusicPause(MusicTest);
        }
        if(pad->pressed[GEK_CIRCLE] && !oldpad->pressed[GEK_CIRCLE]) //SI on appuie sur O la musique s'arrête
        {
            geMusicStop(MusicTest);
        }

        geSwapBuffers();
    }
    sceKernelExitGame();
    return 0;
}

Le Makefile :

TARGET = LibGE
OBJS = main.o
 
CFLAGS = -O2 -G0 -Wall -DPSPFW3xx
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
 
LIBS = -lge -lfreetype -lpspmp3 -lm
 
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Les Musiques PSdev
 
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak

 

Commentez ce tutoriel ICI >>

Powered by PSdev.fr | Partenaires : KdoUSB.com - Boutique en ligne de gadgets USB