C# 如何组合音频和视频曲目进行播放或从web获取StorageFile?

C# 如何组合音频和视频曲目进行播放或从web获取StorageFile?,c#,uwp,C#,Uwp,我开发了YouTube UWP客户端,我需要结合视频和音频曲目(MUX文件只有480p和更低)。但是我无法获取存储文件,因为路径工具长异常(url长度约为800个字符) 我在x64机器上使用Visual Studio 2019预览。最低目标版本为秋季创作者更新,目标版本为2018年10月更新 我尝试了什么: 将最低版本升级至2018年10月更新 使用StorageFile.getfilefromApplicationUserAsync(Uri)而不是StorageFile.GetFileFro

我开发了YouTube UWP客户端,我需要结合视频和音频曲目(MUX文件只有480p和更低)。但是我无法获取
存储文件
,因为
路径工具长异常
(url长度约为800个字符)

我在x64机器上使用Visual Studio 2019预览。最低目标版本为秋季创作者更新,目标版本为2018年10月更新

我尝试了什么:

  • 将最低版本升级至2018年10月更新

  • 使用
    StorageFile.getfilefromApplicationUserAsync(Uri)
    而不是
    StorageFile.GetFileFromPathAsync(string)

然后它上升

System.ArgumentException:'值不在预期范围内。'

根据Microsoft文档():

此异常可能是由于框架不兼容造成的,但在UWP应用程序中,没有明显的方法直接更改目标框架

这是我的密码:

MediaComposition muxedStream = new MediaComposition();

BackgroundAudioTrack audioTrack = await BackgroundAudioTrack.CreateFromFileAsync(await StorageFile.GetFileFromPathAsync(audioInfo.Url));   //Trying to get file throws an exception
MediaClip videoTrack = await MediaClip.CreateFromFileAsync(await StorageFile.GetFileFromPathAsync(videoInfo.Url));

muxedStream.BackgroundAudioTracks.Add(audioTrack);
muxedStream.Clips.Add(videoTrack);

videoSource.SetMediaStreamSource(muxedStream.GenerateMediaStreamSource());
我需要以某种方式绕过这个异常,或者找到另一种方式来组合流

Url示例:(976个字符)

您不能

StorageFile
*用于直接访问UWP应用程序沙盒文件系统中的文件;访问其已声明功能的已知文件夹中的文件;或者制作所选文件的副本而不是,用于从Internet下载/流式传输内容

我引述:

获取一个StorageFile对象,以表示指定路径上的文件

ArgumentException`

路径不能是相对路径或Uri。检查路径的值

…和

获取表示指定的统一资源标识符(URI)应用程序资源的StorageFile对象。有关示例URI的示例,请参阅


<代码> var uri=新建Windows .Fase. Uri(“MS”)appx:///datafile.xml)/我找到了另一个解决方案


不幸的是,
StorageFile
无法从web上获取。但我可以使用两个不同的播放器,它们与一个时间线控制器相连。这里有一个更详细的解决方案:

您是否可以改用
HttpClient
,并将
StorageFile
httpResponse.Content.ReadAsStreamAsync()
中的流一起使用?不要使用StorageFile下载web资源@HansPassant,我不需要下载文件。我需要流媒体。至少是因为下载要比流媒体和在网络上组合它们花费更多的时间run@Matthew,你能提供更多的细节吗?这太模糊了,用谷歌搜索类似“uwp流音频”的东西来找到相关的点击率。