gpt4 book ai didi

c# - YouTube C# .NET API : Uploading video and getting events when finished

转载 作者:太空狗 更新时间:2023-10-29 23:26:08 25 4
gpt4 key购买 nike

这是使用 C# .NET API 从 Windows 窗体桌面应用程序将视频上​​传到 Youtube 的代码:

YouTubeRequestSettings settings = new YouTubeRequestSettings("whatwill come here ?",
"my api key",
"my youtube login email", "my youtube login password");
YouTubeRequest request = new YouTubeRequest(settings);

Video newVideo = new Video();

newVideo.Title = "test 1";
newVideo.Tags.Add(new MediaCategory("Gaming", YouTubeNameTable.CategorySchema));
newVideo.Keywords = "test 1 , test 2";
newVideo.Description = "test 3 test 4";
newVideo.YouTubeEntry.Private = false;
newVideo.Tags.Add(new MediaCategory("tag 1, tag 2",
YouTubeNameTable.DeveloperTagSchema));
newVideo.YouTubeEntry.Location = new GeoRssWhere(37, -122);
newVideo.YouTubeEntry.MediaSource = new MediaFileSource("C:\\test.avi", "video/quicktime");
Video createdVideo = request.Upload(newVideo);

这行得通。我正在寻找的是让我返回上传进度的事件,因此我可以在进度条中显示进度。 Ich 可以注册以下事件:

                            request.Service.AsyncOperationProgress +=
new AsyncOperationProgressEventHandler(Service_AsyncOperationProgress);
request.Service.AsyncOperationCompleted +=
new AsyncOperationCompletedEventHandler(Service_AsyncOperationCompleted);

...但是他们在上传时永远不会被解雇。此外,我找不到比上面的小视频上传示例更深入的关于 .NET api 的任何文档。那么:那些是要寻找的错误事件吗?仅供引用,我在后台线程中使用以下代码开始看似同步的上传:

            ThreadPool.QueueUserWorkItem(
delegate
{
try
{
createdVideo = request.Upload(newVideo);
} catch (Exception ex){
Invoke((ThreadStart) delegate{uploadingFailedWithException(ex);});
}
});
Invoke((ThreadStart)readyUploading);

这样我就知道同步操作何时结束,但我希望向用户发送进度更新事件。有什么想法吗?

最佳答案

您使用的上传方法是同步的,因此,您的程序的执行将停止在该行代码上,只有在上传完成后才会继续。

您要执行的操作需要使用异步上传。显示如何使用 ResumableUploader 组件和 AsyncOperationCompleted/AsyncOperationProgress 事件的完整示例包含在 .NET 客户端库中,可在 http://code.google.com/p/google-gdata/source/browse/#svn%2Ftrunk%2Fclients%2Fcs%2Fsamples%2FYouTubeUploader%2FYouTubeUploader 获得。

关于c# - YouTube C# .NET API : Uploading video and getting events when finished,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6441553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com