#stream #audio-samples #audio-stream #wave #cross-platform

dynwave

基于固定样本流的动态音频播放器

1个不稳定版本

0.1.0 2024年1月29日

#937音频

每月下载量38次
用于 2 crate

MIT 许可协议

25KB
297

dynwave

Build status dependency status license Crates.io dynwave docs.rs dynwave

dynwave是一个基于固定样本流的动态音频播放器,用Rust编写。

本项目的目的是实现一个跨平台音频播放器,可以播放生成的音频样本流并实时播放。

这对于例如模拟器这样的用途很有用,其中模拟循环将类似于这样

  1. 运行一帧的模拟。
  2. 提取该帧收集的音频样本。
  3. 将样本排队以播放(使用dynwave)。
  4. 获取视频帧并显示它。
  5. 重复。

dynwave的用户

如果您在项目中使用了dynwave,请在此处提交一个PR以添加它。

项目 描述
mizu 用Rust编写的GameBoy模拟器
trapezoid 使用Vulkan和Rust驱动的PSX模拟器

入门指南

您可以使用dynwave为您用Rust编写的项目播放音频流。

Cargo

在您的Cargo.toml文件中将它添加为依赖项

cargo add dynwave

示例用法

use dynwave::{AudioPlayer, BufferSize};

let mut player = AudioPlayer::<f32>::new(44100, BufferSize::OneSecond).unwrap();

// Start playing the audio
player.play().unwrap();

// generate audio samples (can be done in a emulation loop for example)
let samples = generate_samples();
player.queue(&samples);

// pause the audio
player.pause().unwrap();

许可协议

本项目采用MIT许可协议 - 请参阅LICENSE文件以获取详细信息

依赖项

~4–33MB
~503K SLoC