我正在构建一个Webapp,将从API调用中获取一个zip文件。该Zipfile包含一个音频文件,我必须在浏览器中播放该文件。我无法将音频文件存储在服务器上并回读它们。
这是我的 flask 网页,它呈现download.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的新手,如果您对如何播放音频而不将其存储在服务器中有任何想法,请告诉我。
谢谢。
最佳答案
您应该能够对您的buff
字节进行base64编码,然后为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>
关于python - 如何从内存中包含.wav文件的zip文件播放HTML页面上的音频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58410042/