Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

240
Views
Can I use createMediaElementSource() without a DOM element?

I am streaming PCM audio chunks by emitting them via socket.io. Then on the browser am using pcm-player to feed the the data as they are received.

I can hear the sound clearly, and everything seems fine. My issue is now that I want to visualize the sound that I am receiving, but everywhere I looked, I stumble on the same part. I need to create a AudioContext analyzer, which needs a source. The only way I can create a source, is by linking it to an <audio> tag createMediaElementSource()

My question is: How can I connect the AudioContext analyzer to the PCMPlayer source? This is what the PCMPlayer contains: enter image description here

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Looks like the gainNode is what PCM Player uses as the final AudioNode in its internal graph.

https://github.com/samirkumardas/pcm-player/blob/ab0c17a2ec75c99abe853eacf47a0113651a7636/pcm-player.js#L50-L52

You can just use that as an input for your visualization. But if you want to do so you need to re-use the AudioContext used by PCM Player. It's not possible to connect an AudioNode created on one AudioContext to another AudioContext.

The following should work:

const analyserNode = AnalyserNode(pcmPlayer.audioCtx);

pcmPlayer.gainNode.connect(analyserNode);
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!