2013-02-19 124 views
-2

目前正在開發適用於家庭的無線音樂播放器,並且可以使用額外的Android手機(Galaxy Nexus)。我的目標是能夠從其他設備(如另一部手機(Android或iPhone)和臺式計算機)控制此手機(可能通過網站?)。來自網站的Android音樂播放器

我想我可能想使用千瓦系統,但我不知道如何繼續?

問題的總體佈局:

音樂存儲在手機上。 手機作爲Web服務器運行。 我們通過wifi連接到手機,並通知手機在其揚聲器上播放歌曲。

我已經完成Android/Java/C,但從未與網站合作過。

有什麼建議嗎?

+0

這個問題非常廣泛。你能改進它嗎? – condit 2013-02-19 21:14:59

+0

已編輯。任何具體問題? – lrAndroid 2013-02-19 21:18:42

回答

2

一種可能性是使用NanoHTTPD - HTTP服務器庫中的單個java文件放置。

一旦將其添加到項目中,您可以創建一個自定義的服務器類,其中包含有關當您的服務器收到請求時要執行的操作的說明。

這裏是一個非常簡化例如:

public class TriggerServer extends NanoHTTPD 
{ 
    private Context ctx; 
    private MediaPlayer mediaPlayer; 
    public PlayMusicServer(Context c) throws IOException 
    { 
     super(8080, new File(".")); 
     ctx = c; 
    } 

    public Response serve(String uri, String method, Properties header, Properties parms, Properties files) 
    { 
     Log.i(FileLog.myTag, method + " '" + uri + "' "); 
     String msg = ""; 

     if (parms.getProperty("play") != null){ 
      String PATH_TO_FILE = parms.getProperty("play") 
      mediaPlayer = new MediaPlayer(); 
      mediaPlayer.setDataSource(PATH_TO_FILE); 
      mediaPlayer.prepare(); 
      mediaPlayer.start(); 
     } 

     return new NanoHTTPD.Response(HTTP_OK, MIME_HTML, msg); 
    } 

} 

如果您從Android服務啓動服務器,並離開它在後臺運行,你應該能夠發送這樣的請求:

的http:// [IP地址]:8080 /播放=%2Fsdcard%2Fmusic.mp3

在那裏你可以傳遞在play參數中的媒體文件路徑中,您必須對路徑進行網址編碼。但只要該設備上存在該文件,並且該設備位於該位置,MediaPlayer就會在收到請求後開始播放該文件。所以如果有一個文件/sdcard/music.mp3它會發揮,如果一切順利。

這個我認爲可以讓你開始和你的項目一起,當然你會做很多工作來擴展這個例子,使它成爲一個完成的項目,但這是一個粗略的想法,你可以用它來開始。