前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python flask音频流/文件服务

python flask音频流/文件服务

作者头像
bear_fish
发布2018-09-14 10:00:47
2.9K0
发布2018-09-14 10:00:47
举报

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1338371

工作需要需要搭建一个音频推送服务,考虑到使用python Flask搭建一个服务,下面给出简单的代码每次请求仅仅推送当前目录下的音频文件。

代码语言:javascript
复制
# _*_coding:utf-8 _*_
from flask import Flask
from flask import Response


app = Flask(__name__)

@app.route('/audio/pcm_mp3/<file_key>')
def stream_mp3(file_key):
    def generate():
        path = 'F:/826.mp3'
        with open(path, 'rb') as fmp3:
            data = fmp3.read(1024)
            while data:
                yield data
                data = fmp3.read(1024)

    return Response(generate(), mimetype="audio/mpeg3")

if __name__ == '__main__':
    # app.run(debug=True)
    # so the other machine can visit the website by ip
    app.run(host='0.0.0.0')

代码中读取文件每次,读取1024字节,而不是一次全部读取到文件中,于是利用到了python 的 yield

为了简化问题,上面仅仅传递当前系统指定路径下的文件(时间的工作中还有很多要处理,日志模块等其他模块)

运行后,浏览器输入:

http://127.0.0.1:5000/audio/pcm_mp3/123.mp3 则弹出下载页面。

当然了实际的工作中,我们还需要nginx以及uwsgi部署,同时需要,文件缓存,这里略过。

参考: https://gist.github.com/hosackm/289814198f43976aff9b

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年11月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档