好吧,这是我的困境:
我想学习如何使用 NuGet,所以我使用一个名为 VideoLibrary ( https://www.nuget.org/packages/VideoLibrary/ ) 的系统对其进行了测试。我成功地将它安装到我的计算机上,并最终让它在代码中运行。我能够成功下载视频,这是扩展的目的,但是格式错误。因此,在阅读了问题和答案部分后,我得到了以下代码:
var youTube = YouTube.Default;
var allVideos = await youTube.GetAllVideosAsync(URL);
var mp4Videos = allVideos.Where(_ => _.Format == VideoFormat.Mp4);
现在,根据我的理解,首先下载所有视频,然后将变量设置为仅 MP4 视频。但是,完成之后,我不知道如何将其保存到字节数组中。通常,要使用 VideoLib 保存视频,您必须将其分配给字节数组,然后将字节数组保存到文件中。因此,我之前将此代码与非异步视频一起使用:
byte[] bytes = video.GetBytes();
var stream = video.Stream();
File.WriteAllBytes(@"C:\" + fullName, bytes);
现在,这种方法现在不适用于我的视频,因为它们是异步的。开发人员稍后提到,您可以使用以下方法将视频分配给字节数组:
byte[] bytes = allVideos.GetBytesAsync();
但是,由于某种原因,这不起作用。我假设我用错了,这就是原因,但我不知道。代码带有红色下划线,它给出:
'IEnumerable<YouTubeVideo>' does not contain a definition to 'GetBytesAsync'
and no extension method 'GetBytesAsync accepting a first argument of type
'IEnumerable<YouTubeVideo>'coulb be found
任何帮助,将不胜感激。