如何在Android中播放歌曲 - phonegap

时间:2010-11-11 20:46:26

标签: javascript android cordova audio

一个月前,我开始使用phonegap,html5,css3和jQtouch。 我正在开发一个应用程序,我需要在应用程序中播放声音。我对这个任务有严重的问题。 首先我发现我可以使用新的Media(...)函数通过phonegap播放.mp3文件。我不确定.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模拟器,我也试过2.2但没有成功。 我希望我很清楚。 我期待着您的回音。 此致, 米哈伊尔维利科夫

4 个答案:

答案 0 :(得分:18)

PhoneGap for 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();

(您可以在Android PhoneGap来源中阅读AudioPlayer.java的来源,了解其工作原理。)

答案 1 :(得分:2)

我可以提供建议吗? 如果您使用PhoneGap媒体播放器..您需要从路径中删除文件://它不接受本地文件的完整URI 问候 金

答案 2 :(得分:1)

我发现我的错误在哪里。 正如我最初想的那样,我想要播放的音频文件没有正确放置。我把它移到/ sdcard文件夹中,一切都很精彩! 附:我只使用文件名,没有文件夹。

答案 3 :(得分:0)

为什么不用HTML 5 audio tag播放歌曲?你的观点是一个webView ..无所谓,它更简单,你有更多的控制权。