прекратить выдачу сообщений об ошибках libvlc поверх urwid - PullRequest
0 голосов
/ 28 ноября 2018

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

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

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

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Вы можете попробовать захватить 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.

0 голосов
/ 29 ноября 2018

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

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

...