我想创建一个利用服务器上的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),以得到它的底部。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top