L'audio▲
Quand vous programmez des applications pour téléphones mobiles, il est parfois intéressant
d'y ajouter des effets sonores.
Pour lire un son, il faut commencer par le charger tout en précisant son type. Pour charger le fichier
audio, il faut utiliser openPlayer.
function
openPlayer(resource:string
; mimetype:string
):boolean
;
Cette fonction retourne false si l'opération n'a pas réussi.
Exemple
if
not
openPlayer('/son.mid'
, 'audio/midi'
) then
halt;
La version MIDlet Pascal 2.02 ne supporte que les sons MIDI. Notez également que tous les autres formats (audio/x-wav pour les sons waves, audio/mpeg pour les sons mp3 ) ne sont pas supportés par tous les téléphones mobiles. Vous pouvez toutefois jouer des sons avec voix sur des téléphones compatibles MIDP-2.0.
Il peut arriver que vous ayez envie de jouer un son un certain nombre de fois, pour ce cas d'utilisation il existe la fonction setPlayerCount.
function
setPlayerCount(tourDeBoucle:integer
):boolean
;
tourDeBoucle est le nombre de fois que sera joué le son; cette fonction ne doit être
appelée qu'après que le fichier son ait été chargé avec openPlayer. Donnez la valeur de -1 Ã
tourDeBoucle si vous voulez jouer indéfiniment le son.
Exemple
if
not
openPlayer('/son.mid'
, 'audio/midi'
) then
halt;
if
not
setPlayerCount(10
) then
halt;
Maintenant que nous savons comment charger le fichier son, comment fixer le nombre de fois qu'il sera joué, voyons comment démarrer sa lecture. Pour ce faire il faut utiliser startPlayer.
function
startPlayer:boolean
;
Cette fonction retourne false si la lecture du son n'a pas démarré.
Exemple
if
not
openPlayer('/son.mid'
, 'audio/midi'
) then
halt;
if
not
setPlayerCount(10
) then
halt;
if
not
startPlayer then
halt;
Notez l'ordre d'appel à ces fonctions.
Il existe d'autres fonctions comme :
- getPlayerDuration qui permet de connaître la durée en millisecondes d'un son
function
getPlayerDuration:integer
;
- stopPlayer qui permet d'arrêter un son en cours de lecture
procedure
stopPlayer;
Exemple
if
not
openPlayer('/son.mid'
, 'audio/midi'
) then
halt;
if
not
setPlayerCount(10
) then
halt;
if
not
startPlayer then
halt;
duree := getPlayerDuration;
{Arrêter apres 2 secondes de lecture}
if
(duree = 2000
) then
stopPlayer;