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

标签 python callback stream pyaudio

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

我使用 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

最佳答案

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

摘自the documentation (强调我的):

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

Parameters:

...

  • start – Start the stream running immediately. Defaults to True. In general, there is no reason to set this to False.

关于python - pyAudio 在调用 start_stream 之前开始流式传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50897510/

相关文章:

用于在 Websphere 中监控管理控制台属性的 Python 脚本

c++ - "__callback"SAL 注释的作用是什么?

algorithm - 如何从递归函数中获取终止原因?

java - 如何将控制台输出保存到某个目录中的文本文件?

python - 在数据框的每一列中查找数据类型

python - 在 WAV 文件中查找音符

python - 使用 factory_boy 和 Authtools 的 Django-Python Django 登录测试失败

C++ 从服务器注册回调

callback - iOS8 上不推荐使用 AudioUnitSampleType,我的渲染回调现在不起作用

ffmpeg - 如何更正 ffmpeg 以流式传输我的 mp4?