繁体   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