Как играть песню в Android - PhoneGap

Месяц назад я начал работать с phonegap, html5, css3 и jQtouch. Я работаю над приложением, и мне нужно воспроизвести звук в приложении. У меня серьезная проблема с этой задачей. Сначала я обнаружил, что могу воспроизводить файлы.mp3 через телефонную пробку, используя новую функцию Media (...). Я не уверен насчет файлов.wav, могу ли я их воспроизвести? Во-вторых, я обнаружил, что файлы должны быть менее 30 секунд, это так? В-третьих, я не могу найти подходящее место для своих звуковых файлов. Моя структура проекта следующая:

project
-- src
-- gen
-- assets
-- -- www
-- -- DANCE.mp3
-- -- jqtouch
-- -- -- (some folders and files)
-- -- phonegap.js
-- libs
-- res

Я попытался поместить файл в папку 'www' и создать новый файл под названием 'audio'. Ничто из этого не дало мне то, что я хотел. Я использую этот код для исполнения песни:

function playStream() {
    mp3file = new Media("DANCE.mp3",
            function() {
                alert("playAudio():Audio Success");
            },
                function(err) {
                    alert(err);
            }
            );
          mp3file.play();
}

Я использую Android 2.1 Simulator и пробовал 2.2 также безуспешно. Я надеюсь, что я был достаточно ясен. Я с нетерпением жду ответа от вас. С уважением, Михаил Великов

4 ответа

Решение

PhoneGap для Android позволяет хранить локальные аудиофайлы в двух местах: android_asset: имя файла должно начинаться с /android_asset/sound.mp3 sdcard: имя файла просто sound.mp3

Если вы поместите файл DANCE.mp3 в каталог ресурсов вашего проекта, вы можете воспроизвести его, используя путь:

mp3file = new Media("/android_asset/DANCE.mp3",
        function() {
            alert("playAudio():Audio Success");
        },
            function(err) {
                alert(err);
        }
        );
      mp3file.play();

(Вы можете прочитать исходный код AudioPlayer.java в источниках Android PhoneGap, чтобы увидеть, как это работает.)

Могу ли я предложить совет.. Если вы используете MediaGap-плеер PhoneGap.. Вам необходимо удалить файл:// из пути.. Он не принимает полный URI для локальных файлов С уважением, Ким

Я выяснил, где была моя ошибка. Звуковой файл, который я хочу воспроизвести, был размещен неправильно, как я сначала подумал. Я переместил его в папку / SDCard, и все было просто замечательно! PS Я использую только имя файла, без папок.

Почему вы просто не играете песни, используя аудио-тег HTML 5? Ваше представление - это веб-представление. Это не имеет значения, оно проще и у вас больше контроля.

Другие вопросы по тегам