Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何通过LibVLC中的D3DDevice成为;HWND";_C++_Video_Directx_Directshow_Libvlc - Fatal编程技术网

C++ 如何通过LibVLC中的D3DDevice成为;HWND";

C++ 如何通过LibVLC中的D3DDevice成为;HWND";,c++,video,directx,directshow,libvlc,C++,Video,Directx,Directshow,Libvlc,我想用libVCL在我的游戏中显示一个视频,但是我对使用HWND有问题当游戏全屏时,全屏表面与视频重叠 我确实有D3DDevice手柄可用,这样视频就可以在游戏界面内绘制。 但我发现的只是libvlc_media_player_set_hwnd(),而不是将视频表面传递到游戏表面进行绘制的方法。有什么方法/示例可以做到这一点吗?LibVLC中没有这样的函数 我认为您需要使用视频格式回调并自己将视频缓冲区渲染为纹理。这就是我使用的方法(例如,来自Java和JMonkeyEngine) 请参阅lib

我想用libVCL在我的游戏中显示一个视频,但是我对使用HWND有问题当游戏全屏时,全屏表面与视频重叠

我确实有D3DDevice手柄可用,这样视频就可以在游戏界面内绘制。
但我发现的只是libvlc_media_player_set_hwnd(),而不是将视频表面传递到游戏表面进行绘制的方法。有什么方法/示例可以做到这一点吗?

LibVLC中没有这样的函数

我认为您需要使用视频格式回调并自己将视频缓冲区渲染为纹理。这就是我使用的方法(例如,来自Java和JMonkeyEngine)

请参阅libvlc_video_set_回调、libvlc_video_set_格式和libvlc_video_set_格式回调


我已经看到这种播放全高清的方式很流畅,但这比让VLC直接渲染到视频表面要消耗更多的CPU。

谢谢你的回复,有没有一些代码或完整的例子可以让我学习?我不介意额外的CPU工作,我只使用java代码,而不是C++。我不确定它的翻译效果如何,但它可以给你一些想法: