【发布时间】:2014-09-30 16:52:23
【问题描述】:
当我尝试播放没有文件扩展名的 本地文件 时,组件 System.Windows.Controls.MediaElement 失败,并出现 FileNotFoundException 提示 “媒体文件下载失败。”:null。内部异常是带有 HResult 0xC00D0FEA 的 System.Runtime.InteropServices.COMException。
我用WebClient.DownloadData(Uri)尝试了分配给MediaPlayer.Source的Uri,无论是uri还是返回的数据都没有问题。
更新:
虽然我首先专注于为什么new Uri(@"c:\temp\filename.") 在最终将文件重命名为“filename.data”之后才变成file:///c:/temp/filename(吞下尾随点),但仍然抛出了同样的异常。我假设 WPF(使用最新技术 Media Foundation)使用文件扩展名,而不仅仅是解析文件数据。 掌心
【问题讨论】:
-
尝试添加“.”到您提供给
MediaElement控件的文件名的末尾。 -
@PeterRitchie 这不会改变任何东西。实际上 Uri 构造函数针对“\\server\share\dir\filenamewithoutextension”。只是忽略/杀死尾随点(.net 4.5.2)
-
该错误表明它在尝试下载时添加了扩展名(或者,没有扩展名的文件实际上不在 URI 中)。如果您知道媒体文件的类型,请尝试重命名或将其复制到具有适当扩展名的路径并尝试使用该新 URI。
-
@springy76,你有没有尝试过我的解决方案“添加 MIME 类型”,这可能会有所帮助!
-
请仔细看:我说的是本地文件系统文件。