lan_audio_link is a generic, product-agnostic Flutter desktop plugin for real-time PCM audio transport across a local network.
Current MVP scope:
- Native implementation for Windows and macOS
- LAN-only UDP transport
- Uncompressed PCM audio at
48 kHz,16-bit, stereo by default - Input device enumeration
- Output device enumeration
- Sender mode with live capture from a selected device
- Multi-receiver sender fan-out to several LAN targets in parallel
- Receiver mode with bounded jitter buffering and live playback to a selected device
openLanandrestrictedLanreceiver access control- Dart streams for link state, levels, and stats
What this plugin does not do in the MVP:
- Public internet streaming
- Icecast, Shoutcast, LiveKit, WebRTC, SRT, or Opus
- Audio recording or saving PCM/audio files to disk
- Historical persistence of packets, buffers, or audio frames
final link = LanAudioLink();
final inputs = await link.getInputDevices();
final outputs = await link.getOutputDevices();
await link.startSender(
inputDeviceId: inputs.first.id,
targetHosts: const ['192.168.1.20', '192.168.1.21'],
targetPort: 5000,
);
await link.stop();
await link.dispose();- Dart API and controller layer in
lib/src - Method channel boundary for platform-independent Flutter usage
- Windows native core in
windows/native - macOS native core in
macos/lan_audio_link/Sources/lan_audio_link - Device management separated from capture, playback, and UDP transport
- Fixed-size bounded receiver jitter buffer
- Packet header with magic, version, sequence, timestamp, format, and payload size
Future phases may add:
- Linux support
- Opus compression
- SRT transport
- Encryption
- Broader remote-network support