0

私はアプリケーションを開発していますC#でYoutubeApi2.0を使用してYouTubeにビデオをアップロードしています

これが私のコードです

    Video newVideo = new Video();

    newVideo.Title = "kankaaaa";
    newVideo.Tags.Add(new MediaCategory("Autos", YouTubeNameTable.CategorySchema));
    newVideo.Keywords = "education, funny deneme";
    newVideo.Description = "bilgi mi istiyorsun";
    newVideo.YouTubeEntry.Private = false;
    newVideo.Tags.Add(new MediaCategory("mydevtag, anotherdevtag",
    YouTubeNameTable.DeveloperTagSchema));
    newVideo.YouTubeEntry.MediaSource = new MediaFileSource("c:\\cat.flv",
          "video/quicktime");      
   // newVideo.Private = true;

 Video createdVideo = Request.Upload(newVideo);

ビデオクラスはGoogle.YouTube名前空間の下にあります。

問題なく動画をアップロードできます。Requestedが完了すると、タイプがVideoであるオブジェクトが返されます。

しかし、処理の詳細を見たいです。私はアップロードのパーセントを意味します。検索したところ、getUploadState()とgetProgress()の2つの関数が見つかりました。しかし、私はそれをyoutubeapiで見つけることができません。

ビデオクラスのステータスクラスメンバーだけがいます。ビデオの結果を表示します。しかし、アップロードプロセスの詳細を学びたいと思います。40%などが完了しました。

何を使うべきですか?私はBackgroundworkerができると思いましたが、それが機能するかどうかはわかりません。

4

1 に答える 1

1

私は自分の問題を解決しました..それは少し困難でしたが、私はついにやりました:)

public bool InsertVideo()
    {
        Trace.TraceInformation("Entering InsertVideo: starting a new upload");
        Video newVideo = new Video();

        newVideo.Title = "MY video";
        newVideo.Tags.Add(new MediaCategory("Autos", YouTubeNameTable.CategorySchema));
        newVideo.Keywords = "education, funny deneme";
        newVideo.Description = "bilgi mi istiyorsun";
        newVideo.YouTubeEntry.Private = false;
        newVideo.Tags.Add(new MediaCategory("mydevtag, anotherdevtag",
          YouTubeNameTable.DeveloperTagSchema));

        newVideo.YouTubeEntry.MediaSource = new MediaFileSource("c:\\cat.flv",
          "video/quicktime");
        // newVideo.Private = true;

        GDataCredentials credentials = new GDataCredentials(UserName, PassWord);

        Authenticator youTubeAuthenticator =new ClientLoginAuthenticator("YoutubeUploader",
                    ServiceNames.YouTube, credentials);
        youTubeAuthenticator.DeveloperKey = DevKey;


        AtomLink link = new AtomLink("http://uploads.gdata.youtube.com/resumable/feeds/api/users/" + UserName + "/uploads");
        link.Rel = ResumableUploader.CreateMediaRelation;
        newVideo.YouTubeEntry.Links.Add(link);

        ResumableUploader ru = new ResumableUploader();
        ru.AsyncOperationCompleted += new AsyncOperationCompletedEventHandler(this.OnDone);
        ru.AsyncOperationProgress += new AsyncOperationProgressEventHandler(this.OnProgress);
        var tmpvalue = "bla bla bla";
        ru.InsertAsync(youTubeAuthenticator, newVideo.YouTubeEntry, tmpvalue);



        return true;
    }

    private void OnProgress(object sender, AsyncOperationProgressEventArgs e)
    {
       Debug.WriteLine("It has been completed : " + e.ProgressPercentage);
    }

    private void OnDone(object sender, AsyncOperationCompletedEventArgs e)
    {

        Debug.WriteLine("It has Done");
    }

また、AsyncOperationCompletedEventArgs eパラメーターとプロパティがResponseStreamを使用して、OnDoneイベントでアップロードされたビデオの情報にアクセスできます。

于 2012-09-02T22:08:20.680 に答える