【发布时间】:2016-08-04 01:29:07
【问题描述】:
我在 YouTube API 使用 ResumeAsync() 方法时遇到了一些问题。
这是我的代码...
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);
}
恢复在哪里适合?
我是否希望在我重新启动应用程序时序列化 ResumableUpload 对象?
看来我需要保留 UploadUri 以供下次使用,并且下次设置此 UploadUri 和 StreamLength 属性。但是,这两个字段在 API 中都是私有的。
除了使用反射来设置这些私有属性之外,还有更好的方法吗?
【问题讨论】:
-
检查这个 SO 问题21321878 如果它可以帮助你:)
-
是的,我在发帖之前已经看过这个帖子。但是,它没有回答我的问题。我的问题几乎是“除了使用反射来设置这些私有属性之外,还有更好的方法吗?”...您的链接提供了一个反射工作的示例。这根本不是解决这个问题的好方法。它违背了 O-O 编程的信息隐藏原则的目的。你现在看到了吗?
-
链接“绕过”了问题,它并没有隐藏这是一个问题的事实。
标签: c# youtube-api youtube-data-api