我正试图从用户的麦克风中获取一个音频文件,当我试图将它发送到服务器下载时,它会不断出错。
这是我的js代码来获取音频
navigator.mediaDevices.getUserMedia({audio:true})
.then(stream => {handlerFunction(stream)})
function handlerFunction(stream) {
rec = new MediaRecorder(stream);
rec.ondataavailable = e => {
audioChunks.push(e.data);
if (rec.state == "inactive"){
let blob = new Blob(audioChunks,{type:'audio/mpeg-3'});
recordedAudio.src = URL.createObjectURL(blob);
recordedAudio.controls=true;
recordedAudio.autoplay=true;
var data = new FormData()
data.append('file', blob, 'file')
sendData(data)
}
}
}
function sendData(data) {
fetch('http://127.0.0.1:5000/test',{
method: 'POST',
body: data
})
}还有我的python代码:
if request.method == "POST":
files = request.files
file = files.get('file')
print(file.content)
return render_template('test.html')这是痕迹:
File "C:\Users\Rohan\anaconda3\lib\site-packages\flask\app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\Rohan\anaconda3\lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\Rohan\anaconda3\lib\site-packages\flask\app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
0, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\Rohan\anaconda3\lib\site-packages\flask\app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "main.py", line 24, in test2
print(file.content)
File "C:\Users\Rohan\anaconda3\lib\site-packages\werkzeug\datastructures.py", line 3095, in __getattr__
return getattr(self.stream._file, name)
AttributeError: '_io.BytesIO' object has no attribute 'content'发布于 2022-10-02 18:53:01
我解决了我的问题,我所需要做的就是做file.read而不是file.content。
发布于 2022-10-02 17:43:35
您似乎试图将文件流发送回客户端,但我不认为它是由烧瓶支持的。使用这些文档作为将来的参考。
https://flask.palletsprojects.com/en/2.2.x/
还有。为什么不是一个问题。尝试:文件被发送后不被读取。
https://stackoverflow.com/questions/73927739
复制相似问题