audiolib.bbc
audiolib.bbc
DESCRIPTION.
Le module audiolib.bbc propose des procédures et des fonctions pour la prise en charge des formats sonores mp3 et wav.
SYNTAXE.
INSTALL @lib$ + "audiolib.bbc"
REMARQUES.
Le module audiolib.bbc contient un ensemble de procédures et de fonctions permettant qui prennent de lire de la musique et des effets sonores, aux formats mp3 ou wav, dans vos programmes.
Dans le cadre de ce module, la distinction entre musique et effets sonores réside dans leur durée : la musique est généralement de longue durée, tandis que les effets sonores sont généralement de courte durée, de quelques secondes tout au plus. Une seule piste musicale peut être lue simultanément, alors que plusieurs effets sonores peuvent être diffusés et éventuellement en même temps que la musique.
Note : le module audiolib.bbc contient la procédure PROC_initAudio qui l'initialise. Elle devra toujours être appelée, de préférence dans l'initialisation générale du programme, avant tout autre fonction ou procédure de la bibliothèque audiolib.bbc.
Les procédures et fonctions du module audiolib.bbc doivent être utilisées et appelées dans un certain ordre pour un bon fonctionnement, on pourra, par exemple faire comme suit pour écouter un fichier au format mp3.
INSTALL @lib$ + "audiolib.bbc" : REM - Charge le module audiolib.bbc depuis la bibliotheque du BBC BASIC
PROC_initAudio : REM --- initialise le module audiolib.bbc - OBLIGATOIRE -
kmusique = FN_loadMP3( "monfichier.mp3" , 44100 , 2 ) : REM - Charge un fichier en memoire et retourne l'adresse de depart
PROC_playSound( kmusique ) : REM - lance la lecture de son
REPEAT : REM - Lance la boucle d'instructions
IF FN_audioPlaying THEN PRINT "Q pour arreter." ELSE EXIT REPEAT : REM - Test s'il reste des donnée audio à lire
ktouche$ = INKEY$( 50 ) : REM - Temporisation et mémorise si une touche est enfoncee
UNTIL ktouche$ = "Q" OR ktouche$ = "q" : REM - Test de sortie de la boucle d'instructions
PROC_freeMP3( kmusique ) : REM - Purge la memoire des données issue du fichier son
END : REM - Fin du programme
DEF FN_audioPlaying : REM - Fonction gerant la suite et l'etat de la lecture
LOCAL remaining% : REM - Fonction gerant la suite et l'etat de la lecture
PROC_trackMusic( kmusique , 0 , 0 , -1 ) : REM - Recharge le tampon audio si necessaire
SYS "SDL_GetQueuedAudioSize", @hwo%, @memhdc% TO remaining% : REM - retourne le nombre octets dans le tampon
PRINT remaining% ; " " ; : REM - Affiche le nombre données pour controler si une recharge a bien eu lieu
IF remaining% > 0 THEN = 1 ELSE = 0 : REM - retourne 0 si n'y a plus de données audio à lire sinon 1
ENDPROC
Le module doit être chargé depuis votre programme à l'aide de l'instruction : INSTALL @lib$ + "audiolib.bbc"
LISTE DES PROCÉDURES DU MODULE.
FN_copyMusic() : crée une copie du fichier chargé et retourne sa position en mémoire.
FN_loadMP3() : charge un fichier au format mp3 et retourne sa position en mémoire.
FN_loadWAV() : charge un fichier au format wav et retourne sa position en mémoire.
FN_loadWAVFromMem() : charge des données wav depuis un emplacement mémoire.
PROC_freeMP3() : libère la mémoire occupée par les fichiers chargés au format mp3.
PROC_freeWAV() : libère la mémoire occupée par les fichiers chargés au format wav.
PROC_initAudio : initialise la prise en charge des formats sonores mp3 et wav.
PROC_mixCancel() : retire un effet sonore ajouté précédemment dans un son en cours de lecture.
PROC_mixSound() : mixte deux fichiers chargés précédemment.
PROC_mixSoundLevel() : mixte deux fichiers chargés précédemment en indiquant le volume de l'effet.
PROC_playSound() : lit le fichier audio chargé précédemment depuis le début.
PROC_playSoundFrom() : lit le fichier audio chargé précédemment à partir d'une position donnée.
PROC_trackMusic() : ajoute des données dans le tampon audio pour poursuivre la lecture du son en cours.
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.