1 unstable release
Uses new Rust 2024
new 0.1.1 | Apr 3, 2025 |
---|
#5 in #oboe
44 downloads per month
Used in 3 crates
1.5MB
16K
SLoC
Aloe Oboe AudioIO
Aloe Oboe AudioIO facilitates audio device management and processing for Android platforms using the Oboe audio library. It provides efficient access to input and output audio channels, enabling seamless integration for high-performance audio applications.
Features
- Device Management: Manage Android audio devices with detailed inspection and configuration of input and output devices.
- Buffer Management: Handle audio buffers with automatic conversion between interleaved and non-interleaved formats.
- High Efficiency: Designed for low latency and high-performance audio processing with native support for various buffer sizes and sample rates.
- Session Control: Start, close, and manage audio sessions with robust error handling and callbacks.
- Custom Audio Formats: Support for both
i16
andf32
audio data formats, with helper functions to convert and refer audio buffers directly to Oboe.
Quick Start
Device Info Struct
pub struct OboeAudioIODeviceTypeDeviceInfo {
name: String,
id: i32,
sample_rates: Vec<i32>,
num_channels: i32,
}
Basic Usage
let is_available = is_oboe_available();
console::log!("Oboe Available: {}", is_available);
let mut device = OboeAudioIODevice::new(
&"DeviceName".to_string(),
-1, &[], 0, // For Input
-1, &[], 0 // For Output
);
let error = device.open(&BigInteger::new(), &BigInteger::new(), 44100.0, 512);
if !error.is_empty() {
console::log!("Error: {}", error);
} else {
device.start(&mut my_callback);
}
Installation
Add the following to your Cargo.toml
:
[dependencies]
aloe-oboe-audioio = "0.1.0"
Note
This README.md file was generated by an AI model and may not be 100% accurate; however, it should be pretty good.
License
This project is licensed under the GPL-3.0 license.
Repository
This crate is a translation of the JUCE module.
JUCE is a c++ software framework for developing high performance audio applications.
Usage falls under the GPLv3 as well as the JUCE commercial license.
See github.com/juce-framework/JUCE and the JUCE license page for details.
This crate is in the process of being translated from c++ to rust. For progress updates, please see the workspacer rust project.
Dependencies
~40MB
~635K SLoC