javascript - Javascript流到文件
问题描述
我的文字转语音软件将在客户端生成声音。
如何让用户下载存储在 ArrayBuffer 中的生成声音?
此外,如果生成的总数据量大于我不想将其流式传输到硬盘而不是将其存储在 RAM 中。是否可以?
解决方案
要将大对象临时保存到磁盘,您可以使用 localStorage 或 IndexDB。请参阅此处的示例如何将 blob 保存到localStoarge(示例使用图像,但可以应用于任何格式,请参阅“使用 blob 作为 responseType”部分)。
要允许用户下载它,您可以使用createObjectURL保存。
function download(content, fileName, contentType) {
var a = document.createElement("a");
var file = new Blob([content], {type: contentType});
a.href = URL.createObjectURL(file);
a.download = fileName;
a.click();
}
download(arrayBuffer, 'media.mp3', 'audio/mpeg');
当然使用适当的格式。
推荐阅读
- c# - 正则表达式在 C# 中搜索不以“0”开头的节号
- android - 自定义适配器后无法在 Activity 中启用按钮编辑文本 afterTextChanged()
- python-3.x - 在 Python3 中读取 NetCDF 文件
- python - tkinter 标签在 python 中未正确显示
- python - Python:制作类实例会产生 AttributeError
- angular6 - ngx bootstrap - 在模板中嵌套组件
- excel - 如果必填字段为空,则禁用命令按钮
- laravel - 将 Laravel 5.6 更新到 5.7 验证电子邮件可通过中间件重新发送,但不适用于新注册
- angular - 当可能发生冲突时,可以在本地使用 createId() 方法吗?
- python - 将 list:key 转换为 key:list 的反向字典