我必须处理来自谷歌驱动器的许多 wav 文件,所以我需要获取音频缓冲区:我正在尝试这段代码,但返回错误:
TypeError: response.body.getReader is not a function
我正在尝试的代码:
const query = `parents='${folderId}' and mimeType = 'audio/wav'`; //
const response = await gapi.client.drive.files.list({
q: query,
supportsAllDrives: true,
includeItemsFromAllDrives: true,
});
const files = response.result.files;
console.log("AUDIO files: ", files);
// Use the Web Audio API to merge the audio files.
const context = new AudioContext();
const channel0Buffers = [];
const channel1Buffers = [];
for (let i = 0; i < files.length; i++) {
const file = files[i];
const fileId = file.id;
const response = await gapi.client.drive.files.get({
fileId: fileId,
alt: "media",
supportsAllDrives: true,
includeItemsFromAllDrives: true,
responseType: "stream",
});
const reader = response.body.getReader();
const streamSource = context.createMediaStreamSource(
new MediaStream([
{
read: async function () {
const { done, value } = await reader.read();
if (done) {
return null;
}
return value.buffer;
},
},
])
);
const audioBuffer = await context.decodeAudioData(streamSource);
if (i < 2) {
channel0Buffers.push(audioBuffer);
} else {
channel1Buffers.push(audioBuffer);
}
任何帮助将不胜感激。谢谢