PAW: Lecture de fichier MP33 minute(s) de lecture

Voici un exemple supplémentaire de script pour le serveur PAW. Il consiste à permettre de jouer un fichier MP3 sur le téléphone et de l’intégrer à un système domotique. Le principe est similaire aux autres scripts précédents. Le serveur domotique déclenche la lecture du fichier MP3 sur le téléphone Android et l’interrompt au bout de 10 secondes.  Voyons comment procéder.

Le script du jour apporte les spécificités suivantes:

  • Pouvoir être appelé par une simple requête HTTP
  • Jouer le fichier MP3 passé en paramètre

Pour obtenir le service attendu encore une fois il suffit de placer le script sur le serveur PAW sur votre téléphone Android.  Il faudra également y placer le fichier MP3 souhaité dans le répertoire “music” du téléphone ou tout autre de votre choix.

Voici le script que je vous propose comme base de travail.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Lecture de fichier MP3</title>

</head>
<body>
<h1>Lecture de fichier MP3</h1>
<bsh>
//déclarations
import android.media.MediaPlayer;

//récupération des paramètre d'entrée
fichier = parameters.get("fichier");

// l'API est documentée ici:
// http://developer.android.com/reference/android/media/MediaPlayer.html

mp = new MediaPlayer();

// on récupère le fichier à lire
mp.setDataSource("/sdcard/music/"+fichier+".mp3");
mp.prepare();
mp.start();
// on lit les 10 premières secondes
while(mp.getCurrentPosition() <= 10*1000) {
  Thread.sleep(1000);
}

//fin de la lecture
mp.stop();
mp.release();

</bsh>
<h3>Paramètres</h3>
<p>
La page prend en paramètre d'entrée les éléments suivants:<br>
<ul>
<li>fichier : Le nom du fichier à lire</li>
</ul>
</p>
<p>
<h3>Nom du fichier à lire:</h3>
<bsh>$$.print("/sdcard/music/"+fichier+".mp3"); </bsh>
</p>
</body>
</hmtl>

L’installation se fait de la même manière que pour le script concernant la reconnaissance vocale. Le prérequis est bien entendu d’avoir installé au préalable le serveur PAW sur votre téléphone Android comme présenté dans le précédent article:

  • Télécharger le code précédent et le sauvegarder le sur votre disque dur dans un fichier appelé : “mp3.xhtml”
  • Se connecter au serveur PAW.
  • Accéder au gestionnaire de fichiers : Menu Media->File manager
  • Dans le répertoire /sdcard/paw/html de votre téléphone créer le répertoire “actions” s’il n’existe pas encore

  • Indiquer l’endroit de votre disque dur où se trouve le script à uploader sur le serveur PAW en cliquant sur “Parcourir”.
  • Sélectionner le fichier “mp3.xhtml” et cliquer sur “Open”.
  • Effectuer l’upload en cliquant sur “Upload”.
  • Le message suivant vous confirme le chargement du script sur le serveur.

Il vous faut également uploader de la même manière le fichier MP3 dans le répertoire /sdcard/paw/music.

Il ne vous reste plus qu’à renseigner l’URL adéquate dans un scénario pour une Zibase ou bien dans un périphérique HTTP sur un serveur eedomus.

L’URL à renseigner sera de la forme:

http://192.168.0.10:8080/actions/mp3.xhtml?fichier=NomFichier

Pensez à modifier “192.168.0.10” par l’adresse IP de votre serveur PAW. La valeur NomFichier sera à remplacer par le nom du fichier à jouer (sans le “.mp3”).

Le but de ce script est de pouvoir informer d’un événement ou d’une alarme/alerte sans utiliser la synthèse vocale.  On peut ainsi créer une sonnette pour la porte d’entrée, un réveil matin, une alerte dès que l’on rentre à la maison pour se souvenir qu’il faut désactiver l’alarme…  Je suis sûr que vous aurez de bonne idées.  N’hésitez pas à les partager!

Pour cet exemple, je tiens à remercier Jochen Ruehl le créateur de PAW pour son coup de main et aide précieuse.  Merci aussi pour son application!

9 Comments

  1. laumonier said:

    bonjour merci pour ce tuto
    en effet grande perspectives en vues
    par contre il y a une erreur sur le chemin, il manque PAW

    “/sdcard/paw/music/”+fichier+”.mp3″

    17 juin 2013
    Reply
    • Avatar photo Hervé said:

      Tout dépends de l’endroit où tu places tes fichiers mp3. En ce qui e concerne le chemin est bien /sdcard/music/
      😉

      17 juin 2013
      Reply
  2. Thomas said:

    Bonjour
    Est il possible de régler le volume lors de la lecture du mp3 comme tu l’as fait avec le script de synthèse vocale?
    Merci pour tous ces tutos sur PAW qui m’ont permis d’exploiter à fond un vieux téléphone android racheté pour une misère!

    8 octobre 2013
    Reply
    • Avatar photo Hervé said:

      Bonjour,
      Oui c’est possible. Pour cela il faut prendre le script MP3 et le modifier en y reportant les éléments qui permettent de piloter le volume sonore du script de Synthèse vocale. Pour savoir quelles lignes reporter il faut se laisser guider par les commentaires.

      Bonne utilisation de PAW!

      8 octobre 2013
      Reply
  3. Thomas said:

    Tout simplement en réutilisant la commande de la synthèse sms?
    /sdcard/paw/music/ »+fichier+ ».mp3&vol=13

    J’étais tenté par l’achat d’occasion d’un karotz…mais au final avec mon samsung acheté 30e, je me retrouve avec un système plus ou moins équivalent (je n’ai pas l’utilité des nanotag, de la webcam et des programmes du karotz pour mon utilisation) grâce au logiciel PAW.

    C’est merveilleux ce que l’on peut faire avec ce logiciel gratuit! (et encore plus quand on peut suivre des tutos aussi clairs que les tiens…j’avoue que sans ça, j’aurais été bien incapable d’utiliser toutes ces fonctionnalités! Un énorme merci pour ton aide!)

    8 octobre 2013
    Reply
  4. romain said:

    bonjour
    un grand bravo pour ces tuto sur paw qui m’ont été d’une grande utilité pour exploiter une nexus7 comme terminal domotique.
    comment modifier le script pour lire le fichier mp3 dans son intégralité sans s’arrêter après 10 secondes et comment modifier le volume sonore ?
    merci encore pour votre aide

    30 décembre 2013
    Reply
  5. dut said:

    Bonjour,
    Attention a la fin du script d’origine, petit coquille : remplacer par
    Pour lire un fichier MP3 en totalité , remplacer par cette partie :

    mp = new MediaPlayer();
    // on recupere le fichier a lire
    mp.setDataSource(“/sdcard/music/”+fichier+”.mp3″);
    mp.prepare();
    mp.start();
    // Attente de la fin du fichier
    while ( mp.isPlaying()) {
    Thread.sleep(100);
    }
    //fin de la lecture => on arrete le lecteur et on le libere…
    mp.stop();
    mp.release();

    6 novembre 2015
    Reply
  6. dut said:

    Attention a la fin du script d’origine, petit coquille : remplacer hmtl par html

    6 novembre 2015
    Reply
  7. Jean Michel said:

    salut

    Petit ou grande question

    je cherche une solution pour rajouter à la requête le tempe de lecture.

    exemple : /sdcard/music/”+fichier+”.mp3/temps=60

    pour le moment j’ai passer le code a 60s
    // on lit les 10 premières secondes
    while(mp.getCurrentPosition() <= 60*1000) {
    Thread.sleep(1000);

    23 février 2017
    Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Prouvez que vous êtes humain: * Time limit is exhausted. Please reload CAPTCHA.