2010-11-11 53 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對本地文件 問候 金