# tauri-plugin-audio
Desktop-only Tauri plugin for listing audio capture devices and controlling one active CPAL/PipeWire capture stream.
The command interface is exposed through `plugin:audio|get_devices`, `plugin:audio|create_stream`, and `plugin:audio|stop_stream`.
## Install
```bash
cargo add tauri-plugin-audio
```
Register the Rust plugin in your Tauri builder:
```rust
tauri::Builder::default()
.plugin(tauri_plugin_audio::init())
.run(tauri::generate_context!())?;
```
## TypeScript Bindings
Generate app-local TypeScript bindings from the crate in the consuming Tauri app:
```rust
use specta_typescript::Typescript;
let builder = tauri_plugin_audio::specta_builder::<tauri::Wry>();
#[cfg(debug_assertions)]
builder
.export(Typescript::default(), "../src/bindings.ts")
.expect("failed to export TypeScript bindings");
```
Use the generated bindings from your frontend:
```ts
import { commands, type StreamEvent } from "./bindings";
const devices = await commands.getDevices();
```