python - 在 PyAudio `output=False` 方法中设置 `open` 有什么意义?

标签 python pyaudio

下面是来自 the PyAudio documentation 的代码示例,展示如何播放 .wav 文件。 我知道在 open 方法中设置 output=False 会阻止文件播放,但这有什么意义呢?这是保留用于调试目的吗?

"""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()

最佳答案

您可以在PyAudio中拥有输入输出流,设置output = False(我认为这是默认值)只是意味着它是不是输出流。

输出流将用于(例如)将现有文件播放到声音子系统(根据您的代码片段)。

输入流可用于从声音子系统提取信息以将信息记录到文件中。

我可以理解为什么有人可能想知道为什么你会将输入输出设置为 false(事实上,我认为这是一个错误条件)但有输出只要 input 为 true,为 false 就可以。

关于python - 在 PyAudio `output=False` 方法中设置 `open` 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63761968/

相关文章:

Python:从 url 获取 shoutcast/internet 广播电台的名称

python - 使用 PyAudio 和 TK 在按键上演奏音符

macos - 在 OS X 上为 Python 3 安装 PyAudio

python - 如何将 1d numpy 数组 append 到 2d numpy 数组 python

python - 如何将滚动条附加到 tkinter 框架中的列表框?

android - 如何在flask framework web server和android app之间发送和接收数据

python - 在回调模式下使用 python 和 pyaudio 的线程问题

python - Loopback ('What u hear' ) 使用 PyAudio 在 Python 中录制

python - 使用文件夹名称重命名文件夹中的所有图像