Playing PCM stream from Web Audio API on Node.js
It looks like you're sending your stream through as the meta
object.
According to the docs, BinaryClient.send
takes a data
object (the stream) and a meta
object, in that order. The callback for the stream
event receives the stream (as a BinaryStream
object, not a Buffer
) in the first parameter and the meta
object in the second.
You're passing send()
the string 'channel'
as the stream and the Float32Array
from getChannelData()
as the meta object. Perhaps if you were to swap those two parameters (or just use client.send(leftChannel)
) and then change the server code to pass stream
to speaker.write
instead of leftchannel
(which should probably be renamed to meta
, or dropped if you don't need it), it might work.
Note that since Float32Array
isn't a stream or buffer object, BinaryJS might try to send it in one chunk. You may want to send leftChannel.buffer
(the ArrayBuffer
behind that object) instead.
Let me know if this works for you; I'm not able to test your exact setup right now.