2014-01-10 3 views
0

나는 mp3 파일에 blobstore를 사용하는 GWT Java 기반 AppEngine 프로젝트를 보유하고 있습니다. blob을 스트리밍하려면 일반적으로 GWT Audio 위젯에 "/ myApp/serve? blob-key = AMIfv ..."와 같은 것을 전달하여 HttpServlet을 호출합니다. 코드는 dev 서버와 동일하거나 전개됩니다.Android에서 AppEngine BLOBstore에서 스트리밍하는 가장 좋은 방법은 무엇입니까?

이제 MediaPlayer로 안드로이드 클라이언트를 사용하고 있지만 MediaPlayer.setDataSource()에 전달 된 URL에 문제가 있습니다.

배포 된 서버의 경우이 URL은 ok : http://example.appspot.com/myApp/serve?blob-key=AMIfv... 으로 작동하지만 dev 모드로 작동하지는 않습니다. 내가 알 수있는 한, 서버는 http://localhost:8888/에서 실행 중이므로 패스 : 하지만 서블릿에는 도달하지 못했습니다 (여러 가지 변형을 시도했습니다).

변화하는 백엔드를 정의하는 &에 도달하는 더 좋은 방법이 있습니까? 엔드 포인트에서 제공하는 데이터 저장소 객체와 비슷한 Android 클라이언트 지원? https://developers.google.com/eclipse/docs/endpoints-android 여기에 LOCAL_ANDROID_RUN을 true로 설정하면 (CloudEndpointUtils.java에서) Android 애플리케이션이 로컬 개발 서버에 연결됩니다. LOCAL_ANDROID_RUN이 false이면 클라이언트 라이브러리는 응용 프로그램 ID에 따라 올바른 URL을 제공합니다.

+0

CloudEndpointUtils.java의 몇 가지 주석에 설명 된 문제가 발견되었습니다. 안드로이드 에뮬레이터를 사용하여 Android 가상 라우터 http://10.0.2.2:8888에서 실행 중이므로 localhost를 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를 사용할 수 있습니다.

관련 문제