web-audio-api icon indicating copy to clipboard operation
web-audio-api copied to clipboard

Is the AudioBuffer occupies too huge bytes?

Open BHznJNs opened this issue 1 year ago • 0 comments

Development environment:

  • Windows 11

  • Node.js v18.12.0

  • web-audio-api package version 0.2.2

Sample code

import waa from "web-audio-api"
import axios from "axios"

const url = "https://music.163.com/song/media/outer/url?id=1991012773.mp3" // audio url
const context = new waa.AudioContext()
axios.get(url, {
    responseType: "arraybuffer"
})
    .then((res) => res.data)
    .then((buffer) => {
        context.decodeAudioData(buffer,
            (audioBuffer) => {
                // do something ... 
            },
            (err) => {
                // do something ...
            },
        )
});

setTimeout(() => {}, 10000)

Then in the TaskManager, this Node.js process will occupy over 250 MB of memory.

I guess that there is a problem with the decodeAudioData function in the lib/utils.js, or is there any problem with my sample code?


By the package heapdump, I found that the AudioBuffer generated by the AudioContext.decodeAudioData function usually occupies over 50 MB of memory when the source audio file is less than 10 MB. Is that normal?

BHznJNs avatar Feb 18 '23 09:02 BHznJNs