[英]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.