libvlcでdirectx apiを使用してfiremonkeyでビデオを再生しようとしています! 既に別の方法でビデオを再生しましたが、directx サーフェスでビデオを再生したいと考えています。
最初にこのリンクを見てください: http://forum.videolan.org/viewtopic.php?f=32&t=82618
誰かが、directx で libvlc を使用する方法についての Delphi コードを書き、そのコードがうまく機能しますが、このコードは純粋な directx コードです。このコードを firemonkey に統合したい! firemonkeyライブラリでどうすればそれを行うことができますか(Windowsのfiremonkeyでもdirectxライブラリを使用していることは知っていますが、firemonkeyライブラリ(インターフェース、クラス、オブジェクト)の命名と使用はdirectxとは大きく異なります!
今いる場所:
「Winapi.Direct3D9、Winapi.D3DX9、FMX.Context.DX9」ライブラリを使用して、この純粋な directx コードを firemonkey にほぼ統合します。
firemonkey コンテキストで IDirect3DDevice9 オブジェクトにアクセスできます!
var
Device: IDirect3DDevice9;
begin
Device := TCustomDirectXContext(TCustomForm3D(ParentForm).Context).Device;
Device.CreateTexture(video_width, video_height, 1, D3DUSAGE_DYNAMIC, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, vlcVideoTexture, nil);
Device.CreateTexture(video_width, video_height, 1, 0, D3DFMT_A8R8G8B8, D3DPOOL_SYSTEMMEM, vlcMemoryTexture, nil);
end;
ここのコードは完全に firemonkey で動作しますが、このコード タイプの結果オブジェクトは IDirect3DTexture9 であることがわかります。このオブジェクトにはビデオのフレーム バッファが含まれています。このオブジェクトをいくつかのコントロールに firemonkey 形式でレンダリングするだけで済みます。
このバッファをfiremonkeyキャンバスに描画するにはどうすればよいですか?
私は良いデルフィ開発者のソリューションを待っています。
ありがとう