页面音频下载遇到的问题记录
一、后端给的音频地址是个音频流
这种情况,前端可以直接下载,示例如下:window.location.href=audioUrl;
二、后端给的音频地址是个播放地址
这种情况,前端需要再次请求,将播放地址返回结果转为blob流,然后进行下载,示例如下:
//音频地址
let audioPath = audioUrl;
//音频名称
let audioName = 'aaa.mp3';
axios({
method:'get',
url:audioPath,
responseType:'blob',
}).then((res) => {
// 为blob设置文件类型
let blob = new Blob([res.data]);
// 创建一个临时的url指向blob对象
let url = window.URL.createObjectURL(blob);
//创建一个a标签,用来下载
let a = document.createElement("a");
a.href = url;
a.download = audioName;
a.click();
// 释放这个临时的对象url
window.URL.revokeObjectURL(url);
})