2016-04-13 7 views
1

ResumeAsync()メソッドを使用してYouTube APIに問題が発生しています。ここでYouTube V3 API C# - 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ではPRIVATEです。

リフレクションを使用してこれらのプライベートプロパティを設定する以外の方法がありますか?バージョン1.14のよう

+0

これを確認する[21321878](http://stackoverflow.com/questions/21321878/youtube-c-sharp-api-v3-how-do-you-resume-an-interrupted-upload)可能であれば助けてください:) – KENdi

+0

はい投稿前にこのスレッドを見ました。しかし、私の質問には答えません。私の質問は、「これらのプライベートプロパティを設定するためにリフレクションを使用する以外の方法がありますか?」...あなたのリンクは、リフレクションが動作する例を示しています。これは、この問題をまったく解決する良い方法ではありません。 O-Oプログラミングの情報隠蔽の原則の目的を破る。あなたは今見ていますか? – Ginko

+0

リンクは問題を「回避」しますが、これが問題であるという事実を隠すことはありません。 – Ginko

答えて

1

GoogleのAPI v3では、.NETクライアントライブラリはResumableUploadセッション中にUploadUriを保存すると、後でUploadUriはプログラムのイベントにアップロードを再開することに使用する機能が含まれています再起動。

以前に保存したUploadUriの追加のパラメータを持つ.ResumeAsyncの使用を示すhttps://github.com/google/google-api-dotnet-client-samplesで2つのResumableUploadの例があります。 UploadSessionDataイベントは、アップロードの開始時に呼び出され、クライアントプログラムにUploadUriを提供するので、プログラムの再起動時に永続ストレージに保存して検索することができます。

関連する問題