如何将服务器生成的音频 wav 文件发送到客户端浏览器? [关闭]

Posted

技术标签:

【中文标题】如何将服务器生成的音频 wav 文件发送到客户端浏览器? [关闭]【英文标题】:How to send audio wav file generated at the server to client browser? [closed] 【发布时间】:2013-06-26 06:16:22 【问题描述】:

我正在为我的应用程序使用烧瓶。我想将音频 wav 文件从服务器端发送到客户端,无论是否将 wav 文件保存在磁盘上。

知道怎么做吗?

【问题讨论】:

【参考方案1】:

你可以用StringIO创建一个内存文件:

from cStringIO import StringIO
from flask import make_response

from somewhere import generate_wav_file  # TODO your code here

@app.route('/path')
def view_method():

    buf = StringIO()

    # generate_wav_file should take a file as parameter and write a wav in it
    generate_wav_file(buf) 

    response = make_response(buf.getvalue())
    buf.close()
    response.headers['Content-Type'] = 'audio/wav'
    response.headers['Content-Disposition'] = 'attachment; filename=sound.wav'
    return response

如果磁盘上有文件:

from flask import send_file

@app.route('/path')
def view_method():
     path_to_file = "/test.wav"

     return send_file(
         path_to_file, 
         mimetype="audio/wav", 
         as_attachment=True, 
         attachment_filename="test.wav")

【讨论】:

请告诉如何将wav文件传递给您的代码? 不是将文件保存在磁盘上,而是将其保存到buf 假设我的磁盘中有文件,我想将它发送到客户端,然后我需要提及 wav 文件路径名。 我以为你想生成一个 wav 并发送它而不将其保存到磁盘。 那么你可以使用send_fileflask.pocoo.org/docs/api/#flask.send_file

以上是关于如何将服务器生成的音频 wav 文件发送到客户端浏览器? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将浮点数组转换为 Wav 文件 Swift [关闭]

从音频字节创建 wav 文件

如何将base64音频数据解码为wav格式

在客户端 JavaScript 中将 WAV 转换为任何压缩音频格式

如何将 Int16Array 缓冲区保存到 wav 文件节点 js

将录制的音频从浏览器保存到 Python API 作为 WAV 文件