Crate wasapi[][src]

Expand description

Wasapi bindings for Rust

The aim of this crate is to provide easy and safe access to the Wasapi API for audio playback and capture.

The presented API is all safe Rust, but structs and functions closely follow the original Windows API.

For details on how to use Wasapi, please see the Windows documentation.

Bindings are generated automatically using the windows crate.

Supported functionality

These things have been implemented so far:

  • Audio playback and capture
  • Shared and exclusive modes
  • Loopback capture

Examples

  • The playsine example plays a sine wave in shared mode on the default output device.

  • The loopback example shows how to simultaneously capture and render sound, with separate threads for capture and render.

Modules

Windows

Structs

AudioCaptureClient

Struct wrapping an IAudioCaptureClient.

AudioClient
AudioRenderClient

Struct wrapping an IAudioRenderClient.

Device

Struct wrapping an IMMDevice.

DeviceCollection

Struct wrapping an IMMDeviceCollection.

Handle

Struct wrapping a HANDLE (event handle).

WasapiError

Error returned by the Wasapi crate.

WaveFormat

Struct wrapping a WAVEFORMATEXTENSIBLE format descriptor.

Enums

Direction

Audio direction, playback or capture.

SampleType

Sample type, float or integer

ShareMode

Sharemode for device

Constants

PKEY_Device_DeviceDesc
PKEY_Device_FriendlyName

Functions

get_default_device

Get the default playback or capture device