如何解决在PyAudio`open`方法中设置`output = False`有什么意义?
下面是the PyAudio documentation中的代码示例,显示了如何播放.wav文件。
我知道在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()
解决方法
您可以在from django.shortcuts import render
from quickchart import QuickChart
def about(request):
return render(request,'stormglass_web_client/about.html',{'quickchart_url': qc_url})
qc = QuickChart()
qc.width = 500
qc.height = 300
qc.device_pixel_ratio = 2.0
qc.config = {
"type": "bar","data": {
"labels": ["Yes","No"],"datasets": [{
"label": "Yes or No","data": [1,2]
}]
}
}
qc_url = (qc.get_url)
中输入和输入流,并设置PyAudio
(我认为这是默认设置)只是意味着它不是输出流。
(例如)将使用输出流向声音子系统播放现有文件(根据您的代码段)。
输入流可用于从声音子系统中提取信息,以将记录到文件中。
我可以理解为什么有人会怀疑您为什么将输入和输出都设置为false(确实,我认为这是一个错误条件),但是将output = False
设置为false是output
是正确的。
TL; DR流可以是输入,输出或两者都可以。至少output
或input
必须是True
。
PyAudio指出open
method of PyAudio
打开一个新流:
打开一个新的流。有关参数的详细信息,请参见
Stream.__init__()
的构造方法。
查看Stream.__init__()
时,我们看到输入和输出均默认为false:
input –指定这是否是输入流。默认为False。
output –指定这是否是输出流。默认为False。
但是有一个警告:
提高:
ValueError –输入或输出均未设置为True。
因此,流既可以输入(从计算机声音系统到文件),也可以输出(从文件到计算机声音系统),或者两者都可以(回调)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。