【问题标题】:How do I stop play function from printing?如何停止打印播放功能?
【发布时间】:2014-03-20 05:06:35
【问题描述】:

我找不到适合我的基于文本的 python 程序的音乐播放器,因为它们都是基于 pygame 的。因此,我求助于使用 python 中的sox 程序和os.system。但是,每当我使用play mymusic.wav 播放文件时,它都会打印:

flap.wav:
 File Size: 11.3k     Bit Rate: 257k
  Encoding: Signed PCM    
  Channels: 1 @ 16-bit   
Samplerate: 16000Hz      
Replaygain: off         
  Duration: 00:00:00.35  
In:100%  00:00:00.35 [00:00:00.00] Out:15.6k [      |      ]        Clip:0    
Done.

我怎样才能阻止它打印这个?

【问题讨论】:

  • subprocess 的形式打开它并将标准输出重定向到/dev/null
  • 唯一的代码是play flap.wav。 sox 程序完成其余的工作(它不是 my 程序。我通过brew install sox 得到它。
  • @ebarr 你的意思是这样的:subprocess.call(['play', 'flap.wav'], stdout=FNULL, stderr=subprocess.STDOUT)?

标签: python python-2.7 audio printing sox


【解决方案1】:

所以输出可以被重定向到 /dev/null 像:

import subprocess
import os

devnull = open(os.devnull,"w")
subprocess.call(['play', 'flap.wav'], stdout=devnull)
devnull.close()

这只会将您的呼叫发送到标准输出的任何内容通过管道传输到/dev/null

【讨论】:

  • 谢谢 :) 它帮助了我
猜你喜欢
  • 2021-12-05
  • 1970-01-01
  • 2019-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多