如何让VLC关闭它的预取错误?

2024-06-26 03:57:10 发布

您现在位置:Python中文网/ 问答频道 /正文

每当播放新歌时,python2.7libvlc都会继续打印[00000000081257d0] prefetch stream error: unimplemented query (264) in control

p.play()导致问题。在

我发现在一些地方,这个错误实际上没有什么意义,VLC只是毫无理由地输出它。我还没找到任何办法。在

我找到了一些解释如何使用这段代码使另一个库的打印静音的线程,但没有任何效果。在

save_stdout = sys.stdout
sys.stdout = io.BytesIO()
self.p.play()
sys.stdout = save_stdout

既然没有结果,有没有办法阻止vlc用预取错误滥发控制台?在


Tags: inplaystreamsave地方错误stdoutsys
2条回答

我查看了VLC源代码,有问题的错误消息被生成in the C code,并被写入stderr。这意味着两件事:

  1. 重定向stdout不起作用,因为stdout和stderr使用不同的文件句柄。在
  2. 在Python级别重定向是行不通的,就像Python那样系统标准只包装C级stderr;它不会改变它。在

要使其工作,您需要在C级别重定向stderr。Eli Bendersky有一个关于在Python中重定向C级stdout的great writeup;也许您可以将该代码用于stderr,并使用python2。在

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

https://wiki.videolan.org/VLC_command-line_help/

相关问题 更多 >