1

私は、Javaアプリケーション内でVLCJムービーの上に描画できるかどうかについて少し時間をかけて調査しました。私は、それが不可能であると言っているいくつかの矛盾するアドバイスと、oracle.comに移動したいくつかの参照記事を見つけました。

長方形/線のようなjava2dグラフィックを描画できるかどうかを誰かが明確にできますか?また、背景が透明であるため、図形が画面に表示されているときに下のビデオストリームを表示できますか?

これがvlcjで不可能な場合、再生中のビデオストリームに注釈を付けることができるLinuxおよびWindows互換のメディアプレーヤーの良い代替手段は何でしょうか。Javaに限定する必要はありませんが、複数のプラットフォーム用に開発された描画ルーチンを再利用できるものが理想的であることに注意してください。

4

1 に答える 1

0

はい、できます。通常のハードウェアレンダリングされたビデオプレーヤーの場合、少なくともJava 6u10(できれば7)が必要であり、VLCキャンバスの上に透明なJWindowをオーバーレイすることでこれを実現します(キャンバスにイベントを追加して更新を確認するのはそれほど難しくありません位置/サイズを選択し、それに応じてオーバーレイされたウィンドウを移動します。)

オーバーレイされたウィンドウを使用しないもう1つの方法はDirectMediaPlayer、フレームバッファに直接アクセスできるを使用することです(したがって、3Dオブジェクトの周りにテクスチャとしてラップするなど、ピクセルで好きなことを行うことができます)。このアプローチでは、選択した方法で画面にレンダリングする前に、必要なものをフレームバッファに描画するだけで済みます。これは最も柔軟なアプローチですが、実装にあまり注意を払わないと、GPUアクセラレーションがすべて失われ、特にHDビデオの場合にCPUが機能しなくなるという欠点があります。

単純なオーバーレイでうまくいく場合は、最初にそれを試して、DirectMediaPlayer必要に応じてaに頼ります。

于 2013-01-08T17:07:58.973 に答える