pyAudio在调用start_stream之前开始流式传输

时间:2018-06-17 14:20:25

标签: python callback stream pyaudio

我想在回调模式下使用pyAudio,并使用stream = pyaudio.PyAudio().open(...)准备一个流。我希望在使用callback启动流后调用stream.start_stream()方法。但是,在创建流对象后立即调用我的回调函数(参见演示代码)。

我使用pyAudio错了还是这个错误?

import time
import pyaudio

def callback(in_data, frame_count, time_info, status):
    print("CALLBACK")
    return (in_data, pyaudio.paContinue)

p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(2), channels=1, rate=44100, 
                input=True, output=False, stream_callback=callback,
                frames_per_buffer=5000)

# XXX: Note that I do not call stream.start_stream() here

time.sleep(5)

stream.close()

我正在使用python 3.6.5和pyaudio 0.2.11以及portaudio 19.6.0

1 个答案:

答案 0 :(得分:1)

pyaudio.Stream的初始化程序(open初始化)默认启动流。如果您不希望以PyAudio.open开头,则可以传递start=False

摘自the documentation强调我的):

  

__init__(PA_manager, rate, channels, ... , start=True, ...)

     

<强>参数

     

...

     
      
  • start - 立即开始运行流。 默认为True。通常,没有理由将其设置为False。
  •