Windowsプラットフォーム用のスクリーンキャストプログラムを作成したいのですが、画面をキャプチャする方法がわかりません。私が知っている唯一の方法はGDIを使用することですが、これに対処する方法が他にあるかどうか知りたいです。速度が優先されます。
スクリーンキャスティングプログラムはゲーム映像を記録するためのものですが、これによりオプションが絞り込まれた場合でも、この範囲外のその他の提案があれば、私はまだ開いています。結局のところ、知識は悪くありません。
編集:私はこの記事に出くわしました:画面をキャプチャするためのさまざまな方法。Windows Media APIの方法とDirectXの方法を紹介しました。結論では、ハードウェアアクセラレーションを無効にすると、キャプチャアプリケーションのパフォーマンスが大幅に向上する可能性があると述べています。これがなぜなのか、私は興味があります。誰かが私のために欠けている空白を埋めることができますか?
編集:Camtasiaなどのスクリーンキャストプログラムは独自のキャプチャドライバーを使用することを読みました。誰かがそれがどのように機能するのか、なぜそれがより速いのかについて私に詳細な説明をくれますか?そのようなものを実装するためのガイダンスも必要かもしれませんが、とにかく既存のドキュメントがあるはずです。
また、FRAPSが画面を記録する方法もわかりました。それは、バックバッファーから読み取るために、基になるグラフィックAPIをフックします。私が理解しているところでは、ビデオRAMではなくシステムRAMから読み取るため、これはフロントバッファーから読み取るよりも高速です。こちらの記事をご覧ください。
MovePlayerLeft()
。また、キーを押す時間やその他の入力時間も記録します。次に、再生モードでは、入力を無視して、代わりに記録されたデータを読み取ります。データで、左キーが押されたのを見つけたら、を呼び出しますMovePlayerLeft()
。