上传视频后,如何使用C#.NET API检查其处理状态? 答案应该在Google.Apis.Youtube.v3.Data.VideoProcessingDetails中,但该对象究竟应该如何实例化?下面的代码抛出一个System.Net.Http.HttpRequestException:YouTube API v3检查视频处理状态
video.ProcessingDetails = new VideoProcessingDetails();
以上在以下上下文中使用的代码:
UserCredential credential;
using (FileStream stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
{
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
new[] { YouTubeService.Scope.Youtube, YouTubeService.Scope.YoutubeUpload },
"user",
CancellationToken.None,
new FileDataStore("YouTube.Auth.Store")).Result;
}
var youtubeService = new YouTubeService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = Assembly.GetExecutingAssembly().GetName().Name
});
var video = new Video();
video.Snippet = new VideoSnippet();
video.Snippet.Title = Title;
video.Snippet.Description = Description;
video.Snippet.Tags = Tags;
video.ProcessingDetails = new VideoProcessingDetails(); // Here it throws an exception
video.Snippet.CategoryId = CategotyId;
video.Status = new VideoStatus();
video.Status.PrivacyStatus = PrivacyStatus;
var filePath = FilePath;
的想法中,一旦视频上传,检查在如果视频仍在处理中,则循环,并在处理完成后对其执行其他操作。
更新:我想通了,如果视频被上传后的对象实例化(即在私有静态无效videosInsertRequest_ResponseReceived()方法,例如),异常消失了,但一旦我尝试访问视频。 ProcessingDetails.ProcessingProgress.TimeLeftMs.Value,它表示该值为空。
谢谢。