gpt4 book ai didi

c# - 从 mediaElement 在 C# 和 WPF 中录制视频

转载 作者:太空宇宙 更新时间:2023-11-03 14:33:15 28 4
gpt4 key购买 nike

我的应用程序使用装饰器将自定义 HLSL 着色器效果应用于 mediaElement。如何使用应用程序本身实时录制和保存修改后的视频?

最佳答案

我一直在使用 RenderTargetBitmap 对象来渲染这样的动画图像序列:

首先调用:

myStoryboard.CurrentTimeInvalidated += new EventHandler(onCurrentTimeInvalidated );

其中 myStoryboard 是驱动动画的 Storyboard ,然后你有以下方法:

void onCurrentTimeInvalidated (object sender, EventArgs e)
{
prefix = "";
if (counter < 10)
{
prefix = "000";
}
else if (counter < 100)
{
prefix = "00";
}
else if (counter < 1000)
{
prefix = "0";
}

Size size = new Size(MainCanvas.ActualWidth, MainCanvas.ActualHeight);
MainCanvas.Measure(size);
MainCanvas.Arrange(new Rect(size));


RenderTargetBitmap bmp = new RenderTargetBitmap(imgWidth, imgHeight, 96d, 96d, PixelFormats.Default);
bmp.Render(MainCanvas);

JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.QualityLevel = 90;
encoder.Frames.Add(BitmapFrame.Create(bmp));
string file = basePath + prefix + counter.ToString() + "_testpic.jpg";
using (Stream stm = File.Create(file))
{
encoder.Save(stm);
}
counter++;
}

我不确定这与 MediaElement 配合使用的效果如何,但值得一试。尽管您需要从 MediaTimeline 驱动 MediaElement 并从其 CurrentTimeInvalidated 事件调用 onCurrentTimeInvalidated 方法,但要使其在 MediaElement 上起作用。

关于c# - 从 mediaElement 在 C# 和 WPF 中录制视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2100491/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com