代码之家  ›  专栏  ›  技术社区  ›  Sheldon

在PyAudio“open”方法中设置“output=False”有什么意义?

  •  1
  • Sheldon  · 技术社区  · 5 年前

    下面是来自 the PyAudio documentation 我理解这一背景 output=False open

    """PyAudio Example: Play a wave file."""
    
    import pyaudio
    import wave
    import sys
    
    CHUNK = 1024
    
    if len(sys.argv) < 2:
        print("Plays a wave file.\n\nUsage: %s filename.wav" % sys.argv[0])
        sys.exit(-1)
    
    wf = wave.open(sys.argv[1], 'rb')
    
    # instantiate PyAudio (1)
    p = pyaudio.PyAudio()
    
    # open stream (2)
    stream = p.open(format=p.get_format_from_width(wf.getsampwidth()),
                    channels=wf.getnchannels(),
                    rate=wf.getframerate(),
                    output=True)
    
    # read data
    data = wf.readframes(CHUNK)
    
    # play stream (3)
    while len(data) > 0:
        stream.write(data)
        data = wf.readframes(CHUNK)
    
    # stop stream (4)
    stream.stop_stream()
    stream.close()
    
    # close PyAudio (5)
    p.terminate()
    
    2 回复  |  直到 5 年前
        1
  •  2
  •   paxdiablo    5 年前

    你可以有意见 输出流输入 PyAudio ,设置 output = False (我认为这是默认的)只是意味着它不是输出流。

    输入流可用于从声音子系统提取信息以进行录制 一个文件。

    我能理解为什么有人会怀疑为什么你会同时拥有这两种输入 输出设置为false(实际上,我认为这是一个错误条件),但是 output input 是真的。

        2
  •  1
  •   Aviv Yaniv    5 年前

    流可以是输入、输出,也可以是两者。至少有一个 output input True .

    PyAudio声明 open method of PyAudio 打开新的流:

    Stream.__init__() 参数详细信息。

    看的时候 Stream.__init__() ,我们看到输入和输出都默认为false:

    output指定这是否是输出流。默认为False。

    但有一个警告:

    加薪:
    值错误输入和输出均未设置为真。

    所以流可以是输入(从计算机声音系统到文件)或输出(从文件到计算机声音系统)或两者(回调)。