停止libvlc在urwid顶部输出错误消息

时间:2018-11-28 13:13:13

标签: python libvlc urwid

在我正在构建的urwid音乐播放器中为libVLC使用python绑定。 libVLC会一直输出一些有关转换时间的错误,例如在暂停和恢复mp3文件时。据我从vlc邮件列表和论坛上的各种帖子中收集的信息,这些错误始终会出现在mp3文件中,只要文件正在播放,就应该不用担心它们。

这将是结束,但是错误不断被写入urwid界面的顶部,这是一个问题。

如何停止libVLC输出这些不必要的错误,或者只是阻止它们显示在urwid界面顶部?

2 个答案:

答案 0 :(得分:0)

我相信您可以使用vlc绑定禁用日志记录或至少为libvlc设置LogLevel

语法和信息https://wiki.videolan.org/VLC_command-line_help/

答案 1 :(得分:0)

您可以在创建VLC对象之前尝试捕获stderr,具体取决于libVLC打开stderr流的时刻。

那会是这样的:

class SimpleSlider extends Component {
  state = {
    slider1: 50,
    slider2: 50
  };

  handleChange = name => (e, value) => {
    this.setState({
      [name]: value // --> Important bit here: This is how you set the value of sliders
    });
  };

  render() {
    const { classes } = this.props;
    const { slider1, slider2 } = this.state;

    return (
      <div className={classes.root}>
        <Typography id="label">Slider label</Typography>
        <Slider
          classes={{ container: classes.slider }}
          value={slider1}
          aria-labelledby="label"
          onChange={this.handleChange("slider1")}
        />
        <Slider
          classes={{ container: classes.slider }}
          value={slider2}
          aria-labelledby="label"
          onChange={this.handleChange("slider2")}
        />
      </div>
    );
  }
}

请参见the docs for redirect_stdout and redirect_stderr-它们是Python 3.5+,但如有必要,您可以在较低的Python版本中重新实现它们。