反正是有使用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無法播放包含#