Остановить 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, если это необходимо.