Остановить libvlc вывод сообщений об ошибках поверх urwid

Используя привязки python для libVLC в музыкальном проигрывателе urwid, который я создаю. libVLC продолжает выводить некоторые ошибки о преобразовании времени, например, при приостановке и возобновлении mp3-файла. Насколько я могу судить по различным постам в списке рассылки vlc и форумах, эти ошибки появляются в mp3-файлах постоянно, и пока файл воспроизводится так, как надо, не стоит беспокоиться о них.

Это было бы концом, но ошибки продолжают записываться поверх интерфейса urwid, и это проблема.

Как я могу либо остановить libVLC от вывода этих несущественных ошибок, либо просто запретить их отображение поверх интерфейса urwid?

1 ответ

Я считаю, что вы можете отключить ведение журнала или, по крайней мере, установить LogLevel для libvlc используя привязки vlc.

Синтаксис и информация https://wiki.videolan.org/VLC_command-line_help/

Вы можете попробовать захватить stderr перед созданием объектов VLC, в зависимости от того, в какой момент поток stderr открыт libVLC.

Это было бы что-то вроде:

import io
import contextlib

tmp_stderr = io.StringIO()
with contextlib.redirect_stderr(tmp_stderr):
    # ... initialize VLC stuff here, sth like this i guess :)
    vlcInstance = vlc.Instance("--no-xlib")
    player = vlcInstance.media_player_new()

Смотрите документы для redirect_stdout а также redirect_stderr - это Python 3.5+, но вы можете переопределить их в более низких версиях Python, если это необходимо.

Другие вопросы по тегам