2014-03-13 5 views
1

게임에서 비디오를 표시하려면 libVCL을 사용하고 싶지만 게임이 전체 화면으로 표시되고 전체 화면이 비디오와 겹치는 경우 HWND를 사용하는 데 문제가 있습니다.LibVLC에서 D3DDevice를 "HWND"로 전달하는 방법

그래도 비디오가 게임 표면에 그릴 수 있도록 D3DDevice 핸들을 사용할 수 있습니다. 그러나 내가 찾은 것은 libvlc_media_player_set_hwnd()이며 비디오 표면을 그리기 위해 게임 표면에 전달하는 방법이 아닙니다. 이 작업을 수행 할 수있는 방법이 있습니까?

답변

1

LibVLC에는 이러한 기능이 없습니다.

비디오 포맷 콜백을 사용하고 비디오 버퍼를 직접 텍스처에 렌더링해야한다고 생각합니다. 이것이 제가 사용했던 접근 방식입니다 (JMonkeyEngine과 함께 Java에서 예를 들어).

libvlc_video_set_callbacks, libvlc_video_set_format 및 libvlc_video_set_format_callbacks를 참조하십시오.

이 재생을 풀 HD로 부드럽게 보았지만 VLC를 비디오 화면에 직접 렌더링하는 것보다 CPU 사용이 많습니다.

+0

답장을 보내 주셔서 감사합니다. 제가 수행 할 수있는 몇 가지 코드 또는 철저한 예가 있습니까? 나는 그 문제에 대해 여분의 CPU 작업을 신경 쓰지 않는다. – user780756

+0

나는 C++이 아니라 자바 코드 만 가지고있다. 나는 번역이 얼마나 잘 될지 모르지만, 몇 가지 아이디어를 줄 수있다 : https://github.com/caprica/vlcj/blob/vlcj-3.0.0/src/main/java/uk/co/caprica /vlcj/player/direct/DefaultDirectMediaPlayer.java – caprica