首页 > 解决方案 > Javascript流到文件

问题描述

我的文字转语音软件将在客户端生成声音。

  1. 如何让用户下载存储在 ArrayBuffer 中的生成声音?

  2. 此外,如果生成的总数据量大于我不想将其流式传输到硬盘而不是将其存储在 RAM 中。是否可以?

标签: javascript

解决方案


要将大对象临时保存到磁盘,您可以使用 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');

当然使用适当的格式。


推荐阅读