2014-01-10 43 views
0

我有一個GWT基於Java的AppEngine項目,它使用blobstore作爲mp3文件。 爲了流式傳輸blob,我通常會通過傳遞類似 「/ myApp/serve?blob-key = AMIfv ...」的函數來向我的服務器HttpServlet調用GWT Audio窗口小部件。 代碼與開發服務器或部署的代碼相同。在Android中從AppEngine blobstore流式傳輸的最佳方式是什麼?

現在我正在嘗試使用MediaPlayer的Android客戶端,但我遇到了傳遞給MediaPlayer.setDataSource()的URL的問題。

對於已部署的服務器,此URL正常工作:http://example.appspot.com/myApp/serve?blob-key=AMIfv... 但我無法使開發模式正常工作。據我所知,服務器運行在http://localhost:8888/,所以我通過:http://localhost:8888/myApp/serve?blob-key=AMIfv...
但servlet從未達到(我嘗試了很多變化)。

是否有更好的方法來達到定義變化的後端的&?類似於終端支持Android客戶端所提供的數據存儲對象 https://developers.google.com/eclipse/docs/endpoints-android 這裏,如果我們將LOCAL_ANDROID_RUN設置爲true(在CloudEndpointUtils.java中),則Android應用程序將連接到本地開發服務器。如果LOCAL_ANDROID_RUN爲false,則客戶端庫會根據應用程序標識提供正確的URL。

+0

我發現這個問題,它在CloudEndpointUtils.java一些意見解釋說:我用的是Android模擬器,因此在運行Android背後的虛擬路由器http://10.0.2.2:8888,這樣的解決方案是10.0.2.2到本地主機替換 – timmacp

回答

0

CloudEndpointUtils.java(來自appengine連接的android嚮導)定義LOCAL_APP_ENGINE_SERVER_URL = "http://localhost:8888/"。此環回地址不適用於模擬器或真正的android。對於這兩種情況,真實接口地址(例如http://192.168.1.2:8888)都會連接到devappserver數據存儲區端點& blobstore。對於仿真器,您可以使用10.0.2.2這是模擬器的虛擬路由器別名,用於主機的回送接口。

相關問題