我在使用Resumesync()方法的YouTube API方面遇到一些问题。
这是我的密码。。。
YouTubeService youtube = await AuthService.AuthenticateYouTubeAsync(auth);
ResumableUpload<Video, Video> vidUploadReq = null;
var video = new Video();
video.Snippet = new VideoSnippet();
video.Snippet.Title = videoToUpload.Title;
video.Snippet.Description = videoToUpload.Description;
video.Snippet.Tags = videoToUpload.Tags;
video.Snippet.CategoryId = videoToUpload.CategoryID;
video.Status = new VideoStatus();
video.Status.PrivacyStatus = videoToUpload.PrivacyStatus;
var filePath = videoToUpload.LocalFilePath;
// Get chunk size and make sure it's valid
int chunkSizeBytes = defaultChunkSizeKB * 1024;
using (var fileStream = new FileStream(filePath, FileMode.Open))
{
vidUploadReq = youtube.Videos.Insert(video, "snippet,status", fileStream, "video/*");
vidUploadReq.ProgressChanged += videoUploadRequest_ProgressChanged;
vidUploadReq.ResponseReceived += videoUploadRequest_ResponseReceived;
vidUploadReq.ChunkSize = chunkSizeBytes;
await vidUploadReq.UploadAsync(token);
}
恢复在哪里合适?
当我重新启动应用程序时,我是否应该序列化的ResumeableUpload对象?
我似乎需要为下一次保留UploadUri,下一次,设置这个UploadUri和StreamLength属性。但是,这两个字段在API中都是PRIVATE。
除了使用反射来设置这些私有属性之外,还有更好的方法吗?
自1.14版起,Google API v3.NET客户端库包含在ResumeUpload会话期间保存UploadUri的功能,以及以后在程序重新启动时使用该UploadUri恢复上载的功能。
中有两个ResumeableUpload示例https://github.com/google/google-api-dotnet-client-samples演示了.ResumeSync与以前保存的UploadUri的附加参数的使用。上传开始时调用的UploadSessionData事件向客户端程序提供UploadUri,以便客户端程序可以将其保存到永久存储中,以便在程序重新启动时检索。