Bonjour,

Je commence à être pas mal désespéré de Cordova, la plupart des exemples données sur la DOC ne fonctionne pas, d'ailleurs à chaque fois que je teste une fonctionnalité elle ne marche pas. Aujourd’hui je cherche à jouer de la musique avec Cordova, j'ai pas mal chercher sur internet, mais encore une fois aucun exemple ne marche. Je teste sur un téléphone physique (NEXUS 4). Le fichier javascript "cordova.js" est bien lié à mon fichier HTML, et les permissions pour le plugin "Media" sont bien ajoutées au fichier config.xml et AndroidManifest.xml. Le son de mon téléphone est bien monté (évidemment :)). Voici le code testé (tiré de la doc) : (j'ai aussi testé avec un fichier mp3 local ça marche pas plus).

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                  "http://www.w3.org/TR/html4/strict.dtd">
    <html>
      <head>
        <title>Media Example</title>
        <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
        <script type="text/javascript" charset="utf-8">
        // Wait for Cordova to load
        //
        document.addEventListener("deviceready", onDeviceReady, false);
        // Cordova is ready
        //
        function onDeviceReady() {
            playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
        }
        // Audio player
        //
        var my_media = null;
        var mediaTimer = null;
        // Play audio
        //
        function playAudio(src) {
            // Create Media object from src
            my_media = new Media(src, onSuccess, onError);
            // Play audio
            my_media.play();
            // Update my_media position every second
            if (mediaTimer == null) {
                mediaTimer = setInterval(function() {
                    // get my_media position
                    my_media.getCurrentPosition(
                        // success callback
                        function(position) {
                            if (position > -1) {
                                setAudioPosition((position) + " sec");
                            }
                        },
                        // error callback
                        function(e) {
                            console.log("Error getting pos=" + e);
                            setAudioPosition("Error: " + e);
                        }
                    );
                }, 1000);
            }
        }
        // Pause audio
        // 
        function pauseAudio() {
            if (my_media) {
                my_media.pause();
            }
        }
        // Stop audio
        // 
        function stopAudio() {
            if (my_media) {
                my_media.stop();
            }
            clearInterval(mediaTimer);
            mediaTimer = null;
        }
        // onSuccess Callback
        //
        function onSuccess() {
            console.log("playAudio():Audio Success");
        }
        // onError Callback 
        //
        function onError(error) {
            alert('code: ' + error.code + '\n' + 
                  'message: ' + error.message + '\n');
        }
        // Set audio position
        // 
        function setAudioPosition(position) {
            document.getElementById('audio_position').innerHTML = position;
        }
        </script>
      </head>
      <body>
        <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>
        <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
        <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
        <p id="audio_position"></p>
      </body>
    </html>

6 réponses


Salut ! Je suis dans le même cas que toi. J'ai bien fouillé sur internet et je ne trouve pas encore de réponse la dessus.

Tu ne peux pas essayer de jouer un son dans un dossier et non en ligne ?

Salut !

Désolé de déterrer le sujet. Mais je cherche aussi à jouer un fichier mp3 (moi c'est en local) et je galère à trouver une solution malgré des recherches de fou.

Tu as trouvé depuis stp :) ?

Merci d'avance mes potentiels sauveurs !!

Liek
Auteur

Non je n'avais pas trouvé de solution au moment ou je cherchais, peut-être que maintenant les choses sont différentes, je ne sais pas. Désolé :')

OK Merci beaucoup pour ta réponse ! Mais t'as fait comment ? Finalement t'as abandonné ou t'as trouvé une alternative ? :x

Mais t'as fait comment ? Finalement t'as abandonné ou t'as trouvé une alternative ? :x

Vu sa réponse, il n'a pas persisté dans sa recherche et est passé à autre chose, il n'a donc pas de solution à te proposer actuellement.