反正是有使用MediaElement的服务器播放的文件(视频或音频型),并在同一时间将数据保存到特定的文件位置,以便下一次,一旦可以从本地系统直接加载。在我的项目,我使用WPF媒体元素WPF的MediaElement下载文件播放时
1
A
回答
1
有没有简单的方法。这是可能的 - 至少有两种方法可以做到这一点。但这并不容易。因为它在内部使用Windows Media Player(这意味着它使用MediaFoundation或DirectShow在封面下,具体取决于您正在运行的是哪个Windows版本),因此干预MediaElement
如何处理其源流是很困难的。编写某种拦截器来传递底层流并将其保存到磁盘的“显而易见的”解决方案是可能的,但是你必须离开.NET的世界去做,因为MediaElement
不能用于.NET流。
这并不是说这是不可能的。您只需编写自定义源代码过滤器,并使用自定义协议实现进行设置即可。 http://msdn.microsoft.com/en-us/library/ms787558(VS.85).aspx描述了视频呈现基础架构如何根据传入的URL决定要创建什么类型的对象来表示视频源。MediaElement
将源URL直接传递到此底层基础架构,因此如果您编写自定义过滤器并将其关联与myhack:
协议,然后如果您将源设置为,例如,myhack://whatever
,它会最终加载您的过滤器。如果您随后将过滤器设置为http:
过滤器的包装,则可以将传入数据的副本保存到磁盘中。
这是非平凡的。
一种替代可以是主机的本地HTTP服务器。如果您可以选择打开本地套接字来侦听,那么您可以编写一个HTTP实现,使用.NET的内置HTTP客户端类型之一来获取数据,同时保存副本并向上提供该数据。这也是非平凡的,但可能比编写自定义源过滤器更容易。
0
我发现,如果我设置下载文件的文件大小之前,我开始下载,那么MediaElement
将同时它的下载播放整个视频/音频。
using (var httpClient = new HttpClient() {Timeout = TimeSpan.FromMinutes(25)})
using (var response = await httpClient.GetAsync(theDownloadUrl, HttpCompletionOption.ResponseHeadersRead))
using (var videoFileStream = File.Open(fileName, FileMode.Create, FileAccess.Write, FileShare.Read)) {
videoFileStream.SetLength(response.Content.Headers.ContentLength.GetValueOrDefault());
var copying = response.Content.CopyToAsync(videoFileStream);
//await Task.Delay(1000);
MediaSource = fileName;
await copying;
}
相关问题
- 1. 下载MediaElement的进度WPF
- 2. WPF中的MediaElement播放视频流?
- 3. 如何在不等待文件完全加载的情况下播放WPF mediaElement中的音频文件?
- 4. WPF MediaElement视频播放撕裂
- 5. 下载时播放音乐文件
- 6. 下载时播放Mp4和Mp3文件
- 7. 使用mediaelement播放的文件的gettin播放计数
- 8. MediaElement可以播放QuickTime(.mov)文件吗?
- 9. WPF音频播放器使用的MediaElement有时滞后
- 10. MediaElement重复播放
- 11. MediaElement不播放mp3
- 12. 使用MediaElement在重复模式下播放gif文件
- 13. WPF MediaElement尝试播放Windows媒体中心录制时暂停
- 14. WPF,如何确定MediaElement何时完成播放电影?
- 15. 无法播放下载的.mp3文件
- 16. 如何播放下载的mp3文件?
- 17. 播放MediaElement后,如何再次播放?
- 18. 的MediaElement不播放声音
- 19. 的MediaElement不会播放MP3
- 20. mediaelement音频播放器音量滑块在播放器下面
- 21. 如何在播放音频文件mp3时使MediaElement可见?
- 22. C#MediaElement有时无法播放视频
- 23. 播放框架:文件下载
- 24. Android下载mp3文件并播放它
- 25. 播放框架2.0.4文件下载
- 26. MediaElement反复播放异常
- 27. mediaelement继续播放锁后
- 28. MediaElement不播放mp3或wav
- 29. MediaElement不在播放MP3
- 30. MediaElement无法播放包含#