1. 程式人生 > >python flask音訊流/檔案服務

python flask音訊流/檔案服務

工作需要需要搭建一個音訊推送服務,考慮到使用python Flask搭建一個服務,下面給出簡單的程式碼每次請求僅僅推送當前目錄下的音訊檔案。

# _*_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'
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

程式碼中讀取檔案每次,讀取1024位元組,而不是一次全部讀取到檔案中,於是利用到了python 的 yield

為了簡化問題,上面僅僅傳遞當前系統指定路徑下的檔案(時間的工作中還有很多要處理,日誌模組等其他模組)

這裡寫圖片描述

執行後,瀏覽器輸入:

這裡寫圖片描述

當然了實際的工作中,我們還需要nginx以及uwsgi部署,同時需要,檔案快取,這裡略過。