2014-01-10 48 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这是模拟器的虚拟路由器别名,用于主机的回送接口。

相关问题