【问题标题】:How to silence console output from vlc module in Python 3如何在 Python 3 中使 vlc 模块的控制台输出静音
【发布时间】:2021-03-09 22:05:57
【问题描述】:

(Xubuntu 18.04,Python 3.6.9)

我正在为自己开发一个小应用程序,使用非常简单的 vlc 模块。这是一个使用 curses 的基于控制台的应用程序,vlc 在我的终端界面中间插入它的输出。我不知道如何让它静音。已阅读 libvlc 文档,我找不到任何关于它的信息。试过this similar question的建议,设置sys.stderr = open('stderr.txt', 'w+')后没有成功。无法在 libvlc 文档或运行 vlc -H 中找到任何内容。我真的不在乎我是否能够访问输出;我只需要它不在控制台中打印。

这是我所有与 VLC 相关的代码,在这种情况下可能不需要:

def vlc_init():
    global vlc_instance, media_player
    vlc_instance = vlc.Instance('--no-xlib') # VLC asked me to pass '--no-xlib' *shrug*
    media_player = vlc_instance.media_player_new()

def set_new_media(media_path):
    media = vlc_instance.media_new(media_path)
    media_player.set_media(media)

有人知道我能做什么吗?

【问题讨论】:

    标签: python python-3.x vlc libvlc


    【解决方案1】:

    来自vlc -H

    Console logger (console)
     -q, --quiet, --no-quiet        Be quiet
                          (default disabled)
       Turn off all messages on the console.
    

    所以,是的,只需在启用这些标志之一的情况下调用您的 vlc 实例,并将 stderr 重定向到 /dev/null 即可。
    vlc_instance = vlc.Instance('--no-xlib -q > /dev/null 2>&1')

    【讨论】:

    • 完美解决方案,非常感谢!我认为这是一个特定于 Linux 的解决方案是否正确,至少是 > /dev/null 2>&1 部分?像这些是正在运行的 bash 命令吗?
    • 哦,是的,是的。甚至没有考虑过,因为多年来 VLC 一直是 Linux 发行版中的标准问题。相信在 Mac 上会很好,因为他们有类似的操作系统。赢是奇怪的——stackoverflow.com/questions/4507312/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-25
    • 1970-01-01
    • 2021-03-10
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多