题
我想创建一个利用服务器上的WPF MediaPlayer的生成缩略图的视频,用户上传的WCF服务。我发现如何渲染一帧,并将其保存到一个文件中有很多OIF信息。但问题的关键事件MediaOpened(实际上没有任何事件),我需要绑定到的不 - 编辑火
有谁知道,如果使用离子WCF服务的背景下,WPF MediaPlayer的事件不火呢?
感谢 迈克尔
解决方案
我决定尝试使用表达式Media编码器2 SDK和它的工作太棒了。
很少的代码就从视频生成缩略图 - 在这里是一个片段
public void GenerateThumbnails(string fileName, int numberOfThumbnails)
{ 队列_positionsToThumbnail =新队列(); Microsoft.Expression.Encoder.MediaItem视频=新Microsoft.Expression.Encoder.MediaItem(文件名);
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);
}
}
其他提示
您可能会需要在屏幕上显示的数据,被解雇的那些事件 - 这一切都依赖于作为WPF可视化树的一部分;它作为一个服务是不运行时。
有很多方法可以尝试解决这个问题,所有这些都令人费解,而且可能不会按比例。我建议使用正常的Windows Media API的(从Windows Media SDK),以得到它的底部。
不隶属于 StackOverflow