Я передаю звук на страницу HTML с помощью Python.
Когда страница загружена, возникает ошибка, и звук не проходит.
Моя цель - передать звук через 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: объект 'function' не повторяется
Я проверил некоторый код других пользователей, например этот ( Audio Livestreaming с Python & Flask ), но безуспешно.
Что я делаю не так?