2010-11-11 52 views
10

一个月前我开始使用phonegap,html5,css3和jQtouch。 我正在研究一个应用程序,我需要在应用程序中播放声音。这个任务我有一个严重的问题。 首先我发现我可以使用新的媒体(...)功能通过phonegap播放.mp3文件。我不确定.wav文件,我可以播放这些文件吗? 第二我发现文件必须小于30秒,是这样吗? 第三我找不到适合我的声音文件的地方。我的项目结构如下:如何播放Android中的歌曲 - 电话号码

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以及没有成功。 我希望我很清楚。 我期待着您的回音。 你的, Mihail Velikov

回答

18

的PhoneGap为Android可以让你存储本地音频文件在两个地方: android_asset:文件名必须以/android_asset/sound.mp3 SD卡启动:文件名是刚刚sound.mp3

如果你把你的舞蹈在项目的资产目录.MP3文件,那么你可以使用路径播放:(你可以阅读在Android的PhoneGap来源AudioPlayer.java的源代码,看看它是如何工作)

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

+0

谢谢!由于某些原因,这些信息很难找到。你的答案应该被标记为IMO的正确答案。 – 2011-03-06 03:30:52

+0

肯定杰克,我相信你是对的。我完成了这个项目已经有一段时间了。感谢您的回答 – 2011-08-14 20:34:51

+0

这是否意味着您不能将媒体放在文件夹中,它必须位于根目录才能正常工作? – nycynik 2012-05-07 14:49:16

0

为什么不用你用HTML 5 audio tag播放歌曲?你的看法是一个webView ..是没有关系的,它更简单,你有更多的控制权。

+0

作为据我所知,Android 2.1&2.2不支持

+0

2.1和2.2支持音频标签。但是..它不支持任何音频格式。 – timing 2012-05-03 21:32:03

+0

我会认为简单的旧html5不会绑定到本机音频播放行为,如设备进入睡眠状态时继续播放。 – BraveNewMath 2012-05-04 05:28:16

1

我发现我的错误在哪里。 我想要播放的音频文件没有正确放置,因为我一开始就想。我把它移到/ sdcard文件夹中,一切都很美妙! P.S.我只使用文件名,没有文件夹。

+1

如何访问SD卡歌曲并使用JavaScript进行播放? – 2012-02-29 10:07:37

+0

你好@HirenDabhi你的意思是使用PhoneGap API [link](http://docs.phonegap.com/en/1.4.1/phonegap_media_media.md.html#Media)播放声音还是没有它? – 2012-03-01 14:14:58

+0

如何用SD卡上的phonegap保存音频文件,我是否将手机内存中的所有文件保存起来? – 2013-03-01 17:06:40

2

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