Sound abspielen zu Phonegap -App für Android

? Malcolm Frexner @ | Original: StackOverFlow
---

Ich versuche, eine MP3-Datei zu spielen. Dies funktioniert, wenn ich den Pfad zu der Datei auf meinem lokalen Webserver, aber wenn ich dies auf einem Android-Gerät der Ton nicht wiedergegeben wird, und es wird kein Fehler angezeigt.

Ich bin mir ziemlich shure, dass die MP3- Datei nicht gefunden wird, aber ich weiß noch nicht, wie man es beheben .

Dies ist die 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>

Dies ist die Javascript

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

Das ist der Dateistruktur

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>

Das funktionierte in Chrom auf meinem lokalen Webserver, aber nicht auf Android.

I tried

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

Das funktionierte, aber ich muss auf lokale Dateien zu spielen bekommen

---

Top 5 Antwort

1Joram Teusink @

Haben Sie versucht, das Entfernen der /android_asset/www/ Teil im Code ? Ihre Anwendung wirkt wie eine Website und es denkt, seine Wurzel ist das www Ordner selbst .

edit: Ich werde Kommentar bearbeiten. Code nicht irgendwie zeigt .

2SatelliteSD @

Wenn Sie lokale Dateien, versuchen, sie mit Referenz src="file:///yourpath/sayHello.mp3"

3Surajit Sarkar @

Das Spiel Methode, die HTML5 -API stellt ist nützlich für die Wiedergabe von Mediendateien auf dem web.Phonegap bietet die Medien -Plugin, um zu spielen lokale Medien files.I checkt Ihren Code, und führen Sie den Ton erfolgreich, indem sie die folgenden changes.Please Check zu Ihrer ende.

1.Fügen die folgende Zeile in config.xml

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

2.Replace Linien in index.html

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

mit diesen Zeilen

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

3.Fügen die folgende Funktion 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>