c# – YouTube直接上传 – OutOfMemory例外
发布时间:2020-12-15 04:18:40 所属栏目:百科 来源:网络整理
导读:每当我尝试使用YouTube API通过直接上传来上传大型视频时.我得到一个OutOfMemory异常.有什么办法可以摆脱这个吗? YouTube API没有说明使用直接上传的视频大小限制. 我放弃了直接上传.现在我尝试了可恢复的上传方式.我的代码如下. YouTubeRequest request;Yo
每当我尝试使用YouTube API通过直接上传来上传大型视频时.我得到一个OutOfMemory异常.有什么办法可以摆脱这个吗? YouTube API没有说明使用直接上传的视频大小限制.
我放弃了直接上传.现在我尝试了可恢复的上传方式.我的代码如下. YouTubeRequest request; YouTubeRequestSettings settings = new YouTubeRequestSettings("YouTube Upload",Client Key,"Username","Password"); request = new YouTubeRequest(settings); Video newVideo = new Video(); ResumableUploader m_ResumableUploader = null; Authenticator YouTubeAuthenticator; m_ResumableUploader = new ResumableUploader(256); //chunksize 256 kilobyte m_ResumableUploader.AsyncOperationCompleted += new AsyncOperationCompletedEventHandler(m_ResumableUploader_AsyncOperationCompleted); m_ResumableUploader.AsyncOperationProgress += new AsyncOperationProgressEventHandler(m_ResumableUploader_AsyncOperationProgress); YouTubeAuthenticator = new ClientLoginAuthenticator("YouTubeUploader",ServiceNames.YouTube,"kjohnson@resoluteinnovations.com","password"); //AtomLink link = new AtomLink("http://uploads.gdata.youtube.com/resumable/feeds/api/users/uploads"); //link.Rel = ResumableUploader.CreateMediaRelation; //newVideo.YouTubeEntry.Links.Add(link); System.IO.FileStream stream = new System.IO.FileStream(filePath,System.IO.FileMode.Open,System.IO.FileAccess.Read); byte[] chunk = new byte[256000];int count = 1; while (true) { int index = 0; while (index < chunk.Length) { int bytesRead = stream.Read(chunk,index,chunk.Length - index); if (bytesRead == 0) { break; } index += bytesRead; } if (index != 0) { // Our previous chunk may have been the last one newVideo.MediaSource = new MediaFileSource(new MemoryStream(chunk),filePath,"video/quicktime"); if (count == 1) { m_ResumableUploader.InsertAsync(YouTubeAuthenticator,newVideo.YouTubeEntry,new MemoryStream(chunk)); count++; } else m_ResumableUploader.ResumeAsync(YouTubeAuthenticator,new Uri("http://uploads.gdata.youtube.com/resumable/feeds/api/users/uploads"),"POST",new MemoryStream(chunk),"video/quicktime",new object()); } if (index != chunk.Length) { // We didn't read a full chunk: we're done break; } } 谁能告诉我有什么问题?我的2 GB视频无法上传. 解决方法
我收到403 Forbidden错误的原因是因为我没有传入:
>用户名&密码 上传代码中未使用/发送上述代码中的请求变量.因此我正在进行未经授权的上传. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |