An asyncio interface to the Pulseaudio library.
Project description
Asyncio interface to the Pulseaudio and Pipewire libpulse library.
libpulse is a Python project based on asyncio, that uses ctypes to interface with the pulse library of the PulseAudio and PipeWire sound servers. The interface is meant to be complete. That is, all the constants, structures, plain functions and async functions are made available by importing the libpulse module of the libpulse package.
Calling an async function is simple, for example assuming the asyncio loop has already been started:
from libpulse.libpulse import LibPulse
async with LibPulse('my libpulse') as lib_pulse:
server_info = await lib_pulse.pa_context_get_server_info()
Another example processing sink-input events:
from libpulse.libpulse import LibPulse, PA_SUBSCRIPTION_MASK_SINK_INPUT
async with LibPulse('my libpulse') as lib_pulse:
await lib_pulse.pa_context_subscribe(PA_SUBSCRIPTION_MASK_SINK_INPUT)
iterator = lib_pulse.get_events()
async for event in iterator:
process_the_event(event)
See the libpulse documentation.
Requirements
Python version 3.8 or more recent.
Installation
Install libpulse with pip:
$ python -m pip install libpulse
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.