Ce plugin permet d'enregistrer et de lire des fichiers audio sur un périphérique.
Remarque: l‘implémentation actuelle n’est pas conforme à une spécification du W3C pour la capture de médias et est fournie pour plus de commodité seulement. Une prochaine implémentation adhèrera à la toute dernière spécification du W3C, ce qui aura probablement pour effet de déprécier l'API actuelle.
cordova plugin add org.apache.cordova.media
Un seul fichier média peut être lu à la fois.
Il y a des restrictions strictes concernant la façon dont votre application interagit avec d'autres médias. Consultez la documentation de Microsoft pour plus d'informations.
var media = new Media(src, mediaSuccess, [mediaError], [mediaStatus]);
src : l'URI du contenu audio. (DOMString)
mediaSuccess : (facultative) la fonction callback exécutée après que la lecture en cours, l‘action d’enregistrement ou l‘arrêt de lecture de l’objet Media
soit terminée. (Function)
mediaError : (facultative) la fonction callback exécutée si une erreur survient. (Function)
mediaStatus : (facultative) la fonction callback exécutée lors de chaque changement d'état. (Function)
Les constantes suivantes correspondent au seul paramètre transmis à la fonction callback mediaStatus
:
Media.MEDIA_NONE
= 0;Media.MEDIA_STARTING
= 1;Media.MEDIA_RUNNING
= 2;Media.MEDIA_PAUSED
= 3;Media.MEDIA_STOPPED
= 4;media.getCurrentPosition
: retourne la position de lecture dans un fichier audio.
media.getDuration
: retourne la durée d'un fichier audio.
media.play
: permet de commencer ou reprendre la lecture d'un fichier audio.
media.pause
: interrompt la lecture d'un fichier audio.
media.release
: libère les ressources audio correspondantes du système d'exploitation.
media.seekTo
: déplace la position de lecture au sein du fichier audio.
media.setVolume
: permet de régler le volume du clip audio.
media.startRecord
: commence l‘enregistrement d’un fichier audio.
media.stopRecord
: arrête l‘enregistrement d’un fichier audio.
media.stop
: arrête la lecture d'un fichier audio.
position : la position de lecture sein du clip audio, en secondes.
getCurrentPosition
permet sa mise à jour.duration : la durée du média, en secondes.
Retourne la position courante dans un fichier audio. Met également à jour la Media
de l'objet position
paramètre.
media.getCurrentPosition(mediaSuccess, [mediaError]);
mediaSuccess : la fonction callback à laquelle est transmise la position actuelle exprimée en secondes.
mediaError : (facultative) la fonction callback exécutée si une erreur se produit.
// lecteur audio // var my_media = new Media(src, onSuccess, onError); // met à jour la position de lecture du fichier à chaque seconde var mediaTimer = setInterval(function () { // récupère la position my_media.getCurrentPosition( // fonction callback de succès function (position) { if (position > -1) { console.log((position) + " secondes"); } }, // fonction callback d'erreur function (e) { console.log("Erreur lors de l'obtention de la position : " + e); } ); }, 1000);
Retourne la durée d'un fichier audio en quelques secondes. Si on ne connaît pas la durée, elle retourne la valeur -1.
media.getDuration();
// lecteur audio // var my_media = new Media(src, onSuccess, onError); // récupère la durée var counter = 0; var timerDur = setInterval(function() { counter = counter + 100; if (counter > 2000) { clearInterval(timerDur); } var dur = my_media.getDuration(); if (dur > 0) { clearInterval(timerDur); document.getElementById('audio_duration').innerHTML = (dur) + " secondes"; } }, 100);
Suspend la lecture d'un fichier audio.
media.pause();
// joue le clip audio // function playAudio(url) { // joue le fichier audio situé à cette url var my_media = new Media(url, // fonction callback de succès function () { console.log("playAudio() : clip audio joué avec succès"); }, // error callback function (err) { console.log("playAudio() : erreur lors de la lecture du clip audio: " + err); } ); // lance la lecture du clip audio my_media.play(); // met la lecture en pause après 10 secondes setTimeout(function () { media.pause(); }, 10000); }
Commence ou reprend la lecture d'un fichier audio.
media.play();
// joue le clip audio // function playAudio(url) { // joue le fichier audio situé à cette url var my_media = new Media(url, // fonction callback de succès function () { console.log("playAudio() : fichier audio lu avec succès"); }, // fonction callback d'erreur function (err) { console.log("playAudio() : erreur lors de la lecture du fichier audio : " + err); } ); // commence la lecture du clip audio my_media.play(); }
numberOfLoops : transmettre cette option à la méthode play
permet de spécifier le nombre de lectures à la suite d'un fichier donné, par exemple :
var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3") myMedia.play({ numberOfLoops: 2 })
playAudioWhenScreenIsLocked : transmettre cette option à la méthode play
permet de spécifier si la lecture doit continuer même lorsque l‘écran de l’appareil est verrouillé. Si la valeur est true
(par défaut), le bouton matériel mute est ignoré, par exemple :
var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3") myMedia.play({ playAudioWhenScreenIsLocked : false })
ordre de recherche de fichier : si un nom de fichier ou chemin d‘accès simple est fourni, iOS recherche d’abord le fichier correspondant dans le répertoire www
, puis dans le répertoire documents/tmp
appartenant à l'application :
var myMedia = new Media("audio/beer.mp3") myMedia.play() // recherche d'abord le fichier www/audio/beer.mp3 puis <application>/documents/tmp/audio/beer.mp3
Libère certaines ressources audio du système d‘exploitation. Cela est particulièrement important pour Android, puisqu’il y a une quantité finie d‘instances OpenCore pour la lecture du média. Les applications doivent en général appeler cette fonction release
pour toute ressource Media
qui n’est plus nécessaire.
media.release();
// lecteur audio // var my_media = new Media(src, onSuccess, onError); my_media.play(); my_media.stop(); my_media.release();
Définit la position de lecture actuelle dans un fichier audio.
media.seekTo(milliseconds);
// lecteur audio // var my_media = new Media(src, onSuccess, onError); my_media.play(); // avance la position à 10 secondes du début du fichier après 5 secondes setTimeout(function() { my_media.seekTo(10000); }, 5000);
Permet de régler le volume d'un fichier audio.
media.setVolume(volume);
// joue le clip audio // function playAudio(url) { // joue le fichier audio situé à cette url var my_media = new Media(url, // fonction callback de succès function() { console.log("playAudio() : fichier audio lu avec succès"); }, // fonction callback d'erreur function(err) { console.log("playAudio() : erreur lors de la lecture du fichier audio : " + err); }); // lance la lecture du clip audio my_media.play(); // baisse le volume au maximum après 2 secondes setTimeout(function() { my_media.setVolume('0.0'); }, 2000); // monte le volume à 1.0 (maximum) après 5 secondes setTimeout(function() { my_media.setVolume('1.0'); }, 5000); }
Permet de démarrer l‘enregistrement d’un fichier audio.
media.startRecord();
// enregistrement audio // function recordAudio() { var src = "myrecording.mp3"; var mediaRec = new Media(src, // fonction callback de succès function() { console.log("recordAudio() : audio enregistré avec succès"); }, // fonction callback d'erreur function(err) { console.log("recordAudio() : erreur lors de l'enregistrement audio : " + err.code); }); // débute l'enregistrement audio mediaRec.startRecord(); }
iOS produit uniquement des enregistrements sous la forme de fichier de type .wav et renvoie une erreur si l'extension du nom de fichier est incorrecte.
Si un chemin d‘accès complet n’est pas précisé, l‘enregistrement est placé dans le répertoire documents/tmp
correspondant à l’application. Il sera ensuite accessible via l‘API File
en utilisant la constante LocalFileSystem.TEMPORARY
. Tout sous-répertoire présent dans le chemin d’accès au moment de l'enregistrement doit déjà exister.
Les fichiers peuvent être enregistrés et lus à l‘aide de l’URI des documents :
var myMedia = new Media("documents://beer.mp3")
Si un chemin d‘accès complet n’est pas fourni, l‘enregistrement est placé dans le répertoire AppData/temp. Ce qui peut être consulté le Fichier
À l’aide de l‘API LocalFileSystem.TEMPORARY
ou ' ms-appdata : temp / / / /’ URI.
N‘importe quel sous-répertoire spécifié au moment de l’enregistrement doit déjà exister.
Arrête la lecture d'un fichier audio.
media.stop();
// joue le clip audio // function playAudio(url) { // joue le fichier audio situé à cette url var my_media = new Media(url, // fonction callback de succès function() { console.log("playAudio() : clip audio lu avec succès"); }, // fonction callback d'erreur function(err) { console.log("playAudio() : erreur lors de la lecture du clip audio : " + err); } ); // démarre la lecture du clip audio my_media.play(); // arrête la lecture après 10 secondes setTimeout(function() { my_media.stop(); }, 10000); }
Arrête l‘enregistrement d’un fichier audio.
media.stopRecord();
// enregistrement audio // function recordAudio() { var src = "myrecording.mp3"; var mediaRec = new Media(src, // fonction callback de succès function() { console.log("recordAudio() : audio enregistré avec succès"); }, // fonction callback d'erreur function(err) { console.log("recordAudio() : erreur lors de l'enregistrement audio : " + err.code); } ); // débute l'enregistrement audio mediaRec.startRecord(); // arrête l'enregistrement après 10 secondes setTimeout(function() { mediaRec.stopRecord(); }, 10000); }
Un objet MediaError
est transmis à la fonction callback mediaError
lorsqu'une erreur survient.
code: l‘un des codes d’erreur prédéfinis énumérés ci-dessous.
message: un message d‘erreur décrivant les détails de l’erreur.
MediaError.MEDIA_ERR_ABORTED
= 1MediaError.MEDIA_ERR_NETWORK
= 2MediaError.MEDIA_ERR_DECODE
= 3MediaError.MEDIA_ERR_NONE_SUPPORTED
= 4