add audio support

This commit is contained in:
DavidVentura
2024-01-27 16:24:35 +01:00
parent 91073c64aa
commit b6cac2d133
3 changed files with 18 additions and 7 deletions
+8 -3
View File
@@ -11,7 +11,7 @@ export type Session = {
broadcast: (msg: DataView) => void;
outgoingCommandId: number;
ticket: number[];
frameEmitter: EventEmitter;
eventEmitter: EventEmitter;
};
export type PacketHandler = (session: Session, dv: DataView) => void;
@@ -50,7 +50,7 @@ const makeSession = (cb: msgCb, connCb: connCb, options?: opt): Session => {
const session: Session = {
outgoingCommandId: 0,
ticket: [0, 0, 0, 0],
frameEmitter: new EventEmitter(),
eventEmitter: new EventEmitter(),
send: (msg: DataView) => {
const raw = msg.readU16();
const cmd = CommandsByValue[raw];
@@ -117,7 +117,8 @@ const s = makeSession(
);
let cur_image_index = 0;
s.frameEmitter.on("frame", (frame: Buffer) => {
const audioFd = createWriteStream(`captures/audio.pcm`);
s.eventEmitter.on("frame", (frame: Buffer) => {
const fname = `captures/${cur_image_index.toString().padStart(4, "0")}.jpg`;
let cur_image = createWriteStream(fname);
cur_image_index++;
@@ -125,3 +126,7 @@ s.frameEmitter.on("frame", (frame: Buffer) => {
cur_image.close();
console.log("got an entire frame", frame.length);
});
s.eventEmitter.on("audio", (frame: Buffer) => {
audioFd.write(frame);
});