python flask音訊流/檔案服務
阿新 • • 發佈:2018-12-30
工作需要需要搭建一個音訊推送服務,考慮到使用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部署,同時需要,檔案快取,這裡略過。