下面是来自 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/