2010-03-17 21 views
0

我有一個C#應用程序,我正在使用Windows Media Player COM控件來播放動畫和音頻。到目前爲止,我所看到的編程控制播放控件的唯一方法是將其URL屬性設置爲指向某個文件(我假設有一些方法可以傳入播放列表)。Windows Media Player COM控件可以從內存(而不是文件)播放AVI文件嗎?

WMP是否可以渲染完全在內存中的AVI,如MemoryStream或其他?如果是這樣,WMP可以從一個AVI跳到下一個無縫地(即從音頻或視頻轉換到下一個音頻或視頻時沒有毛刺)?

如果WMP只播放文件,有什麼辦法在播放開始之前提示文件列表嗎?如果是這樣,WMP可以在不短暫中斷的情況下從一個文件跳到另一個文件嗎?

任何知識或知識的鏈接將不勝感激。

編輯:或者,有沒有第三方控件可以做到這一點?爲了澄清,我真正需要的是一個控制器,它將播放一系列AVI文件(內存或磁盤),並在從一個文件轉換到下一個文件時無縫播放視頻和音頻(所以沒有輕微毛刺或文件之間的暫停)。 WMP似乎關閉了音頻引擎,然後在每個文件之間重新打開(這導致了一個很小的「流行」噪音),所以我甚至不確定WMP可以做我需要的東西。

編輯2:沒關係。我只是試圖分割一個AVI文件,然後在播放列表中連續播放這些片段,這比一個微小的「流行」噪音要糟糕得多。它暫停了幾乎一秒鐘。我不認爲WMP是根據我需要做的。

回答

3

我真的希望這沒有答案:

DirectShow和Windows媒體播放器 允許網址,而不是一個文件名 播放視頻。您可以創建在您的應用程序一個 線程上的HTTP請求 動態座偵聽 環回接口(127.0.0.1)和 只能從你的應用程序 需要請求(看在頁眉或裝上去 在url標識 請求)。然後,您可以將 資源讀取到內存中,並通過網絡請求將其返回 。

- 從比爾·賴斯MVP

在這裏找到:

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/5ffb0aa2-d2b3-44d0-985c-f1d3034711b5

這是遠程可能嗎?

+0

+1非常有創意的答案! – 2010-03-17 01:36:43

+0

我希望有人告訴我沒有辦法,所以我不會浪費任何時間去嘗試。如果是的話,這將是一個heckuva黑客。 :) – MusiGenesis 2010-03-17 01:39:09

相關問題