Воспроизведение звука на PhoneGap приложение для Android

? Malcolm Frexner @ | Original: StackOverFlow
---

Я стараюсь играть mp3- файл. Это работает, если я изменить путь к файлу на моем локальный веб-сервер, но если я бегу это на Android устройствазвук не воспроизводится, и сообщение об ошибке не отображается .

Я довольно уверенны, чтофайл mp3 не найдено, но я все еще не знаю, как это исправить.

Это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>

Это Java-

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

Являетсяфайловая структура

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>

Это работало в хроме на моем локальном веб-сервере, а не на Android.

I tried

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

Это работало, но мне нужно, чтобы получить локальные файлы играть

---

Top 5 ответ

1Joram Teusink @

Пробовали ли вы, удаляя /android_asset/www/ участие в коде ? Ваше приложение работает как веб-сайт, и он думает, что его кореньсаму папку WWW .

Изменить: Я буду править комментарий. Код не показывает то.

2SatelliteSD @

Если вы используете локальные файлы, попробуйте ссылаться на них с src="file:///yourpath/sayHello.mp3"

3Surajit Sarkar @

Метод игрой, которая предоставляетAPI HTML5 Это полезно для проигрывания медиа- файлов, доступных на web.Phonegap предоставляет в распоряжение СМИ плагин играть местные средства массовой информации files.I проверил ваш код и запустить звук успешно, сделав следующую проверку changes.Please на ваш конец.

1.Add следующую строку в config.xml

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

2.Replace линий в index.html

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

с этих линий

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

3.Добавить следующую функцию в 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>