mirror of
https://github.com/rustdesk/rustdesk.git
synced 2024-12-18 21:47:53 +08:00
44 lines
1.3 KiB
Markdown
44 lines
1.3 KiB
Markdown
Rust PulsecAudio API
|
|
====================
|
|
|
|
`pulsectl-rust` is a API wrapper for `libpulse_binding` to make pulseaudio application development easier.
|
|
This is a wrapper around the introspector, and thus this library is only capable of modifying PulseAudio data (changing volume, routing applications and muting right now).
|
|
|
|
### Usage
|
|
|
|
Add this to your `Cargo.toml`:
|
|
```toml
|
|
[dependencies]
|
|
rust-pulsectl = "0.2.6"
|
|
```
|
|
|
|
Then, connect to PulseAudio by creating a `SinkController` for audio playback devices and apps or a `SourceController` for audio recording devices and apps.
|
|
|
|
```rust
|
|
// Simple application that lists all playback devices and their status
|
|
// See examples/change_device_vol.rs for a more complete example
|
|
extern crate pulsectl;
|
|
|
|
use std::io;
|
|
|
|
use pulsectl::controllers::SinkController;
|
|
use pulsectl::controllers::DeviceControl;
|
|
fn main() {
|
|
// create handler that calls functions on playback devices and apps
|
|
let mut handler = SinkController::create();
|
|
let devices = handler
|
|
.list_devices()
|
|
.expect("Could not get list of playback devices");
|
|
println!("Playback Devices");
|
|
for dev in devices.clone() {
|
|
println!(
|
|
"[{}] {}, [Volume: {}]",
|
|
dev.index,
|
|
dev.description.as_ref().unwrap(),
|
|
dev.volume.print()
|
|
);
|
|
}
|
|
}
|
|
```
|
|
|