Skip to main content

anvilkit_audio/
lib.rs

1//! # AnvilKit 音频系统
2//!
3//! 基于 rodio 的跨平台音频播放模块。
4//!
5//! ## 使用示例
6//!
7//! ```rust,no_run
8//! use anvilkit_ecs::prelude::*;
9//! use anvilkit_ecs::audio::AudioSource;
10//! use anvilkit_audio::AudioPlugin;
11//!
12//! let mut app = App::new();
13//! app.add_plugins(AudioPlugin);
14//! ```
15
16#![warn(missing_docs)]
17
18pub mod engine;
19pub mod systems;
20
21use anvilkit_ecs::prelude::*;
22use anvilkit_ecs::schedule::AnvilKitSchedule;
23use engine::AudioEngine;
24use systems::audio_playback_system;
25
26/// 音频插件
27///
28/// 初始化 rodio 音频引擎并注册播放系统。
29pub struct AudioPlugin;
30
31impl Plugin for AudioPlugin {
32    fn build(&self, app: &mut App) {
33        if let Some(engine) = AudioEngine::new() {
34            app.insert_resource(engine);
35        }
36        app.add_systems(AnvilKitSchedule::PostUpdate, audio_playback_system);
37    }
38}