2011-03-07 150 views
1

我使用Google API Java客户端库(http://code.google.com/p/google-api-java-client/)在Android上上传视频电话到YouTube。使用Google API上传到YouTube的问题Java客户端

下面的代码我到目前为止:

// 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(); 

不幸的是,我打电话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,这不是很有帮助。

是否有人设法使用Google API Java客户端库成功将视频上传到YouTube?

谢谢。

- 亚历山大

编辑:即使我填写内容长度的部分,我仍然得到同样的错误(415不支持的媒体类型),这样并不能解决问题。它几乎看起来像POST标题是错误的?

+0

嘿,我也做同样的事情可以ü只是帮助我与我的建议,我遇到了这些上传的视频给YouTube的Android应用程序:)请快速回复 – Rizvan 2011-12-28 04:51:35

+0

嗨任何人都已经完成在Android上传YouTube视频请帮助我 – MAC 2012-04-25 18:15:16

回答

0

自己想出来......结果YouTubeURL使用了JsonC选项。在评论完该行后,一切都运行良好。

0

如果有人对使用新的google-api-java-client的示例感兴趣,我已附加一个到​​。

相关问题