Riproduci suono su PhoneGap app per Android

? Malcolm Frexner @ | Original: StackOverFlow
---

Cerco di riprodurre un file mp3 . Questo funziona se cambio il percorso del file sul mio webserver locale, ma se corro questo su un dispositivo Android il suono non viene riprodotto e viene visualizzato alcun errore .

Sono abbastanza shure che il file mp3 non viene trovato, ma io ancora non so come risolvere il problema .

Questo è l' HTML

  <body>

        <audio id="successSound" src="/android_asset/www/sound/successSound.mp3" type="audio/mpeg" ></audio>
           <audio id="errorSound" src="/android_asset/www/sound/errorSound.mp3" type="audio/mpeg" ></audio>
<!-- some more UI -->
  </body>

Questo è il Javascript

document.getElementById('errorSound').play();

Il è la struttura del file

phonyapp
`-- www
    `-- index.html
        |-- sound
        |   |-- errorSound.mp3
        |   `-- successSound.mp3
        |-- res
        `-- spec

Edit 1

I tried

<audio id="successSound" src="sound/successSound.mp3" type="audio/mpeg" ></audio>

Questo ha funzionato in cromo sul mio webserver locale, ma non su Android .

I tried

<audio id="successSound" src="http://html5multimedia.com/media/sayHello.mp3" type="audio/mpeg" ></audio>

Questo ha funzionato, ma ho bisogno di ottenere file locali a giocare

---

Top 5 Risposta

1Joram Teusink @

Hai provato di rimuovere la parte /android_asset/www/ nel codice ? La vostra applicazione si comporta come un sito web e si pensa che la sua radice è la cartella www stesso.

Edit : Io modificare commento. Codice non mostrando in qualche modo .

2SatelliteSD @

Se si utilizzano i file locali, cercare di riferimento con src="file:///yourpath/sayHello.mp3"

3Surajit Sarkar @

Il metodo di gioco che l'API HTML5 fornisce è utile per la riproduzione di file multimediali disponibili sul web.Phonegap fornisce il plugin multimediale per riprodurre i media locali files.I controllato il codice ed eseguire il suono con successo, rendendo il seguente controllo changes.Please a vostra fine.

1.Add la seguente riga al file config.xml

<gap:plugin name="org.apache.cordova.media" />

2.Replace le linee in index.html

<button onclick="document.getElementById('successSound').play()">Play successSound local</button>
<button onclick="document.getElementById('successSound').play()">Play successSound local</button>

di queste linee

<button onclick="playAudio('successSound')">Play successSound local</button>
<button onclick="playAudio('errorSound')">Play errorSoundlocal</button>

3.Aggiungere la seguente funzione di JS / index.js

function playAudio(id) {
    var audioElement = document.getElementById(id);
    var url = audioElement.getAttribute('src');
    var my_media = new Media(url,
            // success callback
             function () { console.log("playAudio():Audio Success"); },
            // error callback
             function (err) { console.log("playAudio():Audio Error: " + err); }
    );
           // Play audio
    my_media.play();
}
4Praveen @

Use this code

  <body>

    <audio id="successSound" src="file:///android_asset/www/sound/successSound.mp3"      type="audio/mpeg" ></audio>
       <audio id="errorSound" src="file///android_asset/www/sound/errorSound.mp3"   type="audio/mpeg" ></audio>
<!-- some more UI -->
 </body>