为了执行此操作,我使用以下代码:
procedure TForm4.Button2Click(Sender: TObject);
begin
MediaPlayerControl1.MakeScreenshot.SaveToFile('c:\temp\e.bmp');
end;
当此代码运行时,位图保存到文件中;但它总是一个黑色的图像。 我正在努力解决这个问题。 请帮帮我。
答案 0 :(得分:2)
MakeScreenshot实际上是FMX.Types.TControl的一种方法,用于将底层窗口的内容绘制到位图。由于DirectShow使用Video Renderer Filters,在大多数情况下使用DirectDraw和覆盖表面来渲染视频帧,因此MakeScreenshot方法永远不会“看到”视频帧 - 因此黑色位图。 TMediaPlayer似乎没有内置的方式来访问视频帧,就像在SampleBufferToBitmap
的TVideoCaptureDevice方法中看到的那样