簡體   English   中英

如何從 memory 中包含 .wav 文件的 zip 文件播放 HTML 頁面上的音頻文件?

[英]How to play a audio file on HTML page from a zipfile which contains .wav file in memory?

我正在構建一個 web 應用程序,我將從 API 調用中獲取一個 zip 文件。 這個 Zipfile 包含一個我必須在瀏覽器上播放的音頻文件。 我無法將音頻文件存儲在服務器上並讀回它們。

這是我的 flask 網頁,它呈現下載。html 網頁。

zipped_file = io.BytesIO(out_bytes) 
with ZipFile(zipped_file, 'r') as zf:
        zf.printdir()
        filename = zf.infolist()[0].filename
        buff = zf.read(filename) 

 return render_template('download.html', value = buff)

在 download.html 我必須從我們解壓縮的文件中播放音頻。

<audio controls controlsList="nodownload">
   <source src="{{value}}">
   Your browser does not support the audio element.
 </audio>

我是 flask 的新手,如果您對如何播放音頻而不將其存儲在服務器中有任何想法,請告訴我。

謝謝。

您應該能夠 base64 編碼您的buff字節,然后在您的src屬性前加上data:audio/wav;base64,

import base64
zipped_file = io.BytesIO(out_bytes) 
with ZipFile(zipped_file, 'r') as zf:
    zf.printdir()
    filename = zf.infolist()[0].filename
    buff = zf.read(filename)
    encoded = base64.b64encode(buff)

return render_template('download.html', value = encoded)
<audio controls controlsList="nodownload">
    <source src="data:audio/wav;base64,{{value}}">
    Your browser does not support the audio element.
</audio>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM