nov*_*ain 7 javascript python audio blob flask
我正在尝试使用 Flask 将 .wav 音频文件(blob)fr\xc3\xa5n JS 发送到 Python。我只是想将文件保存在Python端并能够在我的电脑上播放。这是我的尝试:
\n\nJS:
\n\nfetch(serverUrl, {\n method: "post",\n body: blob\n});\nRun Code Online (Sandbox Code Playgroud)\n\n其中 blob 的类型为Blob {size: 5040, type: "audio/wav;"}
Python:
\n\n@app.route(\'/messages\', methods = [\'POST\'])\ndef api_message():\n # Open file and write binary (blob) data\n f = open(\'./file.wav\', \'wb\')\n f.write(request.data)\n f.close()\n return "Binary message written!"\nRun Code Online (Sandbox Code Playgroud)\n\n文件已保存,但只包含大量内容[object BlobEvent]. 我做错了什么以及如何解决它?
编辑: \n音频样本是使用收集的MediaRecorder()
const mediaRecorder = new MediaRecorder(stream);\n// Start\nconst chunks = [];\nmediaRecorder.ondataavailable = e => {\n chunks.push(e);\n}\n// On stop\nblob = new Blob(chunks, {\'type\': \'audio/wav;\'});\nRun Code Online (Sandbox Code Playgroud)\n\n我尝试在客户端再次播放音频,效果很好:
\n\nconst audio = document.createElement(\'audio\');\nconst audioURL = window.URL.createObjectURL(blob);\naudio.src = audioURL;\nRun Code Online (Sandbox Code Playgroud)\n
您将事件对象数组传递给 Blob 构造函数,而不是音频数据。
数据是e.data,所以你的代码应该是
mediaRecorder.ondataavailable = e => {
chunks.push(e.data);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6474 次 |
| 最近记录: |