【发布时间】:2017-07-16 15:19:29
【问题描述】:
我可以看到每上传 10MB 就会触发一次事件,但我希望更频繁地获取进度。
假设文件大小小于10MB,例如起点和终点之间没有进度信息。
我试过InsertMediaUpload.GetProgress(),但它只返回ProgressChanged的上传值,而不是当前值。
【问题讨论】:
标签: .net youtube-data-api
我可以看到每上传 10MB 就会触发一次事件,但我希望更频繁地获取进度。
假设文件大小小于10MB,例如起点和终点之间没有进度信息。
我试过InsertMediaUpload.GetProgress(),但它只返回ProgressChanged的上传值,而不是当前值。
【问题讨论】:
标签: .net youtube-data-api
您可以通过更改 InsertMediaUpload 请求中的 ChunkSize 属性来实现此目的。
默认块大小为 10MB,但您可以通过将请求上的 ChunkSize 属性设置为 256KB 的任意倍数来更改它。
我使用here 提供的示例对此进行了测试。
在Run() 中设置ChunkSize 后
videosInsertRequest.ChunkSize = 262144;
或
videosInsertRequest.ChunkSize = ResumableUpload.MinimumChunkSize;
我可以看到videosInsertRequest_ProgressChanged 处理程序被更频繁地调用。
我认为可以通过在视频上传时检查 GetProgress().BytesSent 来增加进度报告,但这也只会在每个“块”之后更新(所以我们可以获得的最频繁的报告是由 ChunkSize 设置的并被ProgressChanged 处理程序捕获)。
【讨论】: