Skip to content

Is the AudioBuffer occupies too huge bytes? #89

@BHznJNs

Description

@BHznJNs

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions