我想创建一个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