Google Drive 从 Google Drive 中的 WAV 文件创建 AudioBuffer

问题描述 投票:0回答:0

我必须处理来自谷歌驱动器的许多 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);
    }

任何帮助将不胜感激。谢谢

javascript wav google-api-js-client audiobuffer
© www.soinside.com 2019 - 2024. All rights reserved.