一種可能性是使用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
它會發揮,如果一切順利。
這個我認爲可以讓你開始和你的項目一起,當然你會做很多工作來擴展這個例子,使它成爲一個完成的項目,但這是一個粗略的想法,你可以用它來開始。
這個問題非常廣泛。你能改進它嗎? – condit 2013-02-19 21:14:59
已編輯。任何具體問題? – lrAndroid 2013-02-19 21:18:42