Как играть песню в 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? Ваше представление - это веб-представление. Это не имеет значения, оно проще и у вас больше контроля.