Skip to content

Recappi/sdk

Repository files navigation

@recappi/sdk

https://github.com/Recappi/sdk/actions/workflows/CI.yml

Usage

Recording system audio

Both input and output devices are recording, mixed into a single audio stream.

import { writeFile } from "node:fs/promises"; import { setTimeout } from "node:timers/promises"; import { ShareableContent } from "@recappi/sdk"; import { createWavBuffer } from "@recappi/sdk/encode-wav"; const WavBuffers = []; let totalLength = 0; const session = ShareableContent.tapGlobalAudio([], (err, samples) => { if (err) { console.error("Error capturing audio:", err); return; } WavBuffers.push(samples); totalLength += samples.length; }); console.info("Recording audio for 5 seconds..."); await setTimeout(5000); // Record for 5 seconds session.stop(); console.info( `Recording stopped. Writing ${totalLength} samples to output.wav...`, ); const { buf: contactedBuffer } = WavBuffers.reduce( ({ buf, offset }, cur) => { buf.set(cur, offset); return { buf, offset: offset + cur.length, }; }, { buf: new Float32Array(totalLength), offset: 0, }, ); console.log(`Creating WAV buffer ...`); const wavBuffer = Buffer.from( createWavBuffer(contactedBuffer, { sampleRate: session.sampleRate, numChannels: session.channels, }), ); await writeFile("output.wav", wavBuffer);

Playground

yarn install yarn build yarn workspace playground dev:server yarn workspace playground dev:web

About

Cross platform audio capture SDK

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  
  •  

Packages

No packages published