我正在使用python将声音流式传输到HTML页面。
在加载页面时,会发生错误并且没有声音通过。
我的目的是通过HTTP将声音流传输到网页。声音被记录并立即流到网页。
这是main.py
from flask import flask,render_template,Response,stream_with_context
from camera import VideoCamera
from audio import Audio
app = flask(__name__)
blur = False
track = False
@app.route('/')
def index():
return render_template('index.html')
@app.route('/audio_feed')
def audio_feed():
return Response(stream_with_context(Audio.get_stream))
Audio.py,我在其中录制声音:
import pyaudio
class Audio(object):
def __init__(self):
CHUNK = 1024
WIDTH = 2
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
p = pyaudio.PyAudio()
self.audio = stream = p.open(format=p.get_format_from_width(WIDTH),channels=CHANNELS,rate=RATE,input=True,# output=True,frames_per_buffer=CHUNK)
while True:
data = stream.read(CHUNK)
stream.write(data,CHUNK)
stream.stop_stream()
stream.close()
p.terminate()
def get_stream(self):
global stream
return stream
错误如下:
调试中间件在流响应中捕获异常 已发送响应头的位置。追溯(最近通话 最后):文件 “ /library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/werkzeug/wsgi.py”, 第506行,下一个 返回self._next()文件“ /library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/werkzeug/wrappers/base_response.py”, 第45行,以_iter_encoded 对于可迭代项:TypeError:“函数”对象不可迭代
我检查了其他类似这样的代码(Audio Livestreaming with Python & Flask),但没有成功。
我在做什么错了?