我想創建一個WCF服務,利用服務器上的WPF MediaPlayer爲用戶上傳的視頻生成縮略圖。我發現了很多關於如何渲染幀並將其保存到文件的信息。但問題是關鍵事件MediaOpened(實際上沒有事件)我需要綁到不 - 編輯火。WCF服務創建視頻縮略圖
有誰知道如果WPF MediaPlayer事件不會觸發如果使用離子的WCF服務的上下文?
感謝 邁克爾
我想創建一個WCF服務,利用服務器上的WPF MediaPlayer爲用戶上傳的視頻生成縮略圖。我發現了很多關於如何渲染幀並將其保存到文件的信息。但問題是關鍵事件MediaOpened(實際上沒有事件)我需要綁到不 - 編輯火。WCF服務創建視頻縮略圖
有誰知道如果WPF MediaPlayer事件不會觸發如果使用離子的WCF服務的上下文?
感謝 邁克爾
我決定嘗試使用Expression Media Encoder 2 SDK,它工作得很好。
很少的代碼就從視頻生成縮略圖 - 在這裏是一個片段
public void GenerateThumbnails(string fileName, int numberOfThumbnails)
{ 隊列_positionsToThumbnail =新隊列(); Microsoft.Expression.Encoder.MediaItem video = new Microsoft.Expression.Encoder.MediaItem(fileName);
var totalMilliseconds = video.FileDuration.TotalMilliseconds;
//create a queue of timespans for the thumbnails
for (int i = 0; i < numberOfThumbnails; i++)
{
_positionsToThumbnail.Enqueue(TimeSpan.FromMilliseconds((((2 * i) + 1) * totalMilliseconds)/(2 * numberOfThumbnails)));
}
//create the thumbnails and save them to disk
while(_positionsToThumbnail.Count > 0)
{
Bitmap bitMap = video.GetThumbnail(_positionsToThumbnail.Dequeue(), new System.Drawing.Size(100,100));
bitMap.Save(@"F:\thumbs\" + _positionsToThumbnail.Count.ToString() + ".png", ImageFormat.Png);
}
}
喜Mlantosca。我也必須做同樣的事情削減視頻幀,併爲此 我已經安裝了「Expression Encoder 2 Service Pack 1 SDK.msi」 ,但我沒有得到dll的microsoft.expression使用...請問您可以請寫我如果還有其他東西是需要的 – Radhi 2010-02-10 05:14:19
你可能需要在屏幕上顯示的數據,被解僱的那些事件 - 這一切都依賴於作爲WPF可視化樹的一部分;當作爲服務運行時,它不是。
有很多方法可以嘗試解決這個問題,所有這些方法都很複雜,並且可能不會擴展。我建議使用正常的Windows Media API(從Windows Media SDK)到底部。
MediaOpened不會觸發事件 - 對不起 – MIantosca 2009-01-13 22:39:40