#python #wxpython #libvlc
#python #wxpython #libvlc
Вопрос:
Я играю с примером кода vlc-python для видеоплеера на основе WX отсюда
Операционная система — Windows 10
Все работает гладко, за исключением того, что мультимедиа воспроизводится в отдельном окне, созданном непосредственно перед началом воспроизведения.
Я создал экземпляр проигрывателя с помощью этого кода:
self.videopanel = wx.Panel(self, -1)
...
self.Instance = vlc.Instance('--verbose 3')
self.player = self.Instance.media_player_new()
self.player.set_xwindow(self.videopanel.GetHandle())
и получил следующие строки отладки, связанные с материалом ‘vout’:
... [skipped]
[000000000855a530] main window debug: looking for vout window module matching "embed-xid,any": 3 candidates
... [skipped]
[000000000855a530] main window debug: no vout window modules matched
... [skipped]
[00000000085aa8c0] main vout display debug: looking for vout display module matching "any": 12 candidates
... [skipped]
[00000000085aa8c0] main vout display debug: using vout display module "direct3d11"
Кто-нибудь может дать мне подсказку о том, как заставить libvlc использовать окно WX media?
Большое спасибо!
Ответ №1:
Rubber отказался от ответа 🙂 Для Windows set_hwnd
следует использовать вызов API, а не set_xwindow
(что для систем X11)
if os.name == 'nt':
self.player.set_hwnd(self.videopanel.GetHandle())
else:
self.player.set_xwindow(self.videopanel.GetHandle())
Спасибо всем!