2

このアクションを実行するために、以下のコードを使用します。

procedure TForm4.Button2Click(Sender: TObject);
begin
  MediaPlayerControl1.MakeScreenshot.SaveToFile('c:\temp\e.bmp');
end;

このコードを実行すると、ファイルに保存されたビットマップが実行されます。でもいつも黒い画像です。私はこの問題を解決しようとしています。私を助けてください。

4

1 に答える 1

2

MakeScreenshotは、実際にはFMX.Types.TControlのメソッドであり、基になるウィンドウのコンテンツをビットマップに描画するように設計されています。DirectShowはほとんどの場合DirectDrawとオーバーレイサーフェスを使用してビデオフレームをレンダリングするビデオレンダラーフィルターを使用するため、MakeScreenshotメソッドはビデオフレームを「認識」しません。つまり、黒いビットマップです。TVideoCaptureDeviceのSampleBufferToBitmapメソッドで予測されているように、ビデオフレームにアクセスするための組み込みの方法がTMediaPlayerに組み込まれていないようです

于 2012-10-15T10:22:54.993 に答える