2015-10-27 165 views
3

我正在尝试使用YouTube API将视频上传到YouTube。使用不变的代码运行测试时抛出以下异常:使用Java将视频上传到Youtube

Exception in thread "main" java.lang.IllegalArgumentException: Cannot call getProgress() if the specified AbstractInputStreamContent has no content length. Use getNumBytesUploaded() to denote progress instead. 
at com.google.api.client.repackaged.com.google.common.base.Preconditions.checkArgument(Preconditions.java:92) 
at com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:49) 
at com.google.api.client.googleapis.media.MediaHttpUploader.getProgress(MediaHttpUploader.java:934) 
at com.google.api.services.samples.youtube.cmdline.UploadVideo$1.progressChanged(UploadVideo.java:151) 
at com.google.api.client.googleapis.media.MediaHttpUploader.updateStateAndNotifyListener(MediaHttpUploader.java:907) 
at com.google.api.client.googleapis.media.MediaHttpUploader.resumableUpload(MediaHttpUploader.java:471) 
at com.google.api.client.googleapis.media.MediaHttpUploader.upload(MediaHttpUploader.java:336) 
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:427) 
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352) 
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469) 
at com.google.api.services.samples.youtube.cmdline.UploadVideo.main(UploadVideo.java:165) 

任何想法为什么以及如何修复它?

+2

你尝试过'getNumBytesUploaded()'而不是'getProgress()'吗? – dguay

回答

1

更换getProgress()getNumBytesUploaded()

System.out.println("Upload percentage: " + uploader.getNumBytesUploaded()); 

它工作的,你可以上传大型视频。

相关问题