2011-03-07 2 views
1

Google API Java 클라이언트 라이브러리 (http://code.google.com/p/google-api-java-client/)를 사용하여 Android에 비디오를 업로드하고 있습니다. YouTube에 전화.Google API Java 클라이언트를 사용하여 YouTube에 업로드 할 때 문제가 발생했습니다.

다음 코드는 내가 지금까지 가지고있다 :) (request.execute를 호출 할 때

// Create the meta data 
Entry entry = new Entry(); 
entry.group = new MediaGroup(); 
entry.group.title = "test title"; 
entry.group.description = "test description"; 
entry.group.category = new MediaCategory(); 
entry.group.category.Cat = "People\n"; 

XmlNamespaceDictionary namespaceDictionary = Util.NAMESPACE_DICTIONARY; 

AtomContent aContent = new AtomContent(); 
aContent.entry = entry; 
aContent.namespaceDictionary = namespaceDictionary; 

// Create the actual video data 
InputStreamContent bContent = new InputStreamContent(); 
bContent.inputStream = 
    context.getContentResolver().openInputStream(media); 
bContent.type = context.getContentResolver().getType(media); 
bContent.length = videoAsset.getLength(); 

// Build up the POST request 
MultipartRelatedContent multiContent = new MultipartRelatedContent(); 
multiContent.parts.add(aContent); 
multiContent.parts.add(bContent); 


HttpRequest request = transport.buildPostRequest(); 
request.url = YouTubeUrl.uploadUrl(); 
GoogleHeaders headers = (GoogleHeaders) request.headers; 
headers.setSlugFromFileName("mytest.3gpp"); 
request.content = multiContent; 
request.headers.contentType = multiContent.getType(); 

request.execute(); 

를 불행히도, 난 예외를 얻을 : 내가 잘못 뭐하는 거지

03-06 23:28:58.887: WARN/System.err(18923): com.google.api.client.http.HttpResponseException: 415 Unsupported Media Type 
03-06 23:28:58.897: WARN/System.err(18923):  at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:221) 
03-06 23:28:58.897: WARN/System.err(18923):  at com.abless.vidshare.YouTubeAPI.upload(YouTubeAPI.java:118) 
03-06 23:28:58.897: WARN/System.err(18923):  at com.abless.vidshare.VidShare.onActivityResult(VidShare.java:185) 
03-06 23:28:58.897: WARN/System.err(18923):  at android.app.Activity.dispatchActivityResult(Activity.java:3931) 
03-06 23:28:58.907: WARN/System.err(18923):  at android.app.ActivityThread.deliverResults(ActivityThread.java:3730) 
03-06 23:28:58.907: WARN/System.err(18923):  at android.app.ActivityThread.handleSendResult(ActivityThread.java:3776) 
03-06 23:28:58.907: WARN/System.err(18923):  at android.app.ActivityThread.access$2800(ActivityThread.java:135) 
03-06 23:28:58.907: WARN/System.err(18923):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2166) 
03-06 23:28:58.907: WARN/System.err(18923):  at android.os.Handler.dispatchMessage(Handler.java:99) 
03-06 23:28:58.907: WARN/System.err(18923):  at android.os.Looper.loop(Looper.java:144) 
03-06 23:28:58.907: WARN/System.err(18923):  at android.app.ActivityThread.main(ActivityThread.java:4937) 
03-06 23:28:58.907: WARN/System.err(18923):  at java.lang.reflect.Method.invokeNative(Native Method) 
03-06 23:28:58.917: WARN/System.err(18923):  at java.lang.reflect.Method.invoke(Method.java:521) 
03-06 23:28:58.917: WARN/System.err(18923):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
03-06 23:28:58.917: WARN/System.err(18923):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
03-06 23:28:58.917: WARN/System.err(18923):  at dalvik.system.NativeStart.main(Native Method) 

? Content-Length가 MultipartRelatedContent에 의해 자동으로 지정되지 않은 것 같습니다. 그게 문제일까요? 나는 구현 코드를 살펴 보았고, MultipartRelatedContent.getLength()는 -1을 리턴한다. 이것은별로 도움이되지 않는다.

성공적으로 YouTube에 비디오를 업로드하려면 누구도 Google API Java 클라이언트 라이브러리를 사용할 수 있습니까?

감사합니다.

-Alexander

편집 : 그게 해결되지 않는, 그래서 나는 콘텐츠 길이 부분을 작성하더라도, 난 여전히 같은 오류 (415 지원되지 않는 미디어 유형)을 얻는다. POST 헤더가 잘못된 것처럼 보입니다.

+0

안녕하세요 저는 또한 저에게 같은 제안을 할 수 있습니다. U 제안을 통해 저를 도울 수 있습니다. 안드로이드 응용 프로그램으로 YouTube에 업로드하는 동영상에 문제가 있습니다 :) – Rizvan

+0

안녕하세요, 누군가 YouTube에서 안드로이드 동영상 업로드를 완료했습니다. – MAC

답변

0

내 생각에 ... YouTubeURL은 JsonC 옵션을 사용했습니다. 그 줄을 주석 처리 한 후 모든 것이 아름답게 작동했습니다.

0

누군가 새로운 google-api-java-client를 사용하는 예에 관심이있는 경우 bug 16에 하나를 첨부했습니다.