dxAudio
1. 概述
此模块是 dejaOS 官方系统模块库 的一部分,用于音频播放和管理功能。 它包含全面的音频系统功能:
- 使用 WAV 文件进行音频播放(不支持 MP3 或其他格式)
- 从 ArrayBuffer 数据进行音频流播放
- 文本转语音(TTS)功能(并非所有设备都支持)
- 音量控制和范围管理(0-10,其中 0 表示静音)
- 播放中断和缓存管理
- 跨线程音频播放支持
2. 文件
- dxAudio.js
- libvbar-m-dxaudio.so
- libasound.so.2
- libatopology.so.2
- 确保这 4 个文件包含在您项目根目录下的 dxmodules 子目录中
3. 依赖项
- dxLogger
4. 兼容设备
兼容所有运行 dejaOS v2.0+ 的设备。设备必须具有音频硬件支持。
5. 使用方法
基本用法
import audio from "./dxmodules/dxAudio.js";
// 初始化音频系统
audio.init(5, 512, 2048); // volume=5, periodSize=512, bufferSize=2048
// 播放 WAV 文件
audio.play("/app/code/src/audio.wav");
// 设置音量
audio.setVolume(7);
// 获取当前音量
let currentVolume = audio.getVolume();
log.info("当前音量:", currentVolume);
// 中断当前播放
audio.interrupt();
// 清除播放缓存
audio.clearCache();
// 完成后反初始化(通常不需要)
audio.deinit();
6. API 参考
audio.init(volume, periodSize, bufferSize)
初始化音频系统。必须在任何其他操作之前调用。
参数:
volume(number): 音量级别(0-10,其中 0 表示静音),默认 5periodSize(number): 周期大小(样本数),默认 512bufferSize(number): 缓冲区大小(样本数),默认 2048
技术细节:
- periodSize: 控制音频处理延迟。较小的值(256,512)提供较低的延迟但 CPU 使用率较高。较大的值(1024,2048)减少 CPU 使用率但增加延迟。
- bufferSize: 确定音频流畅度。较小的值(1024,2048)使用较少内存但可能导致音频卡顿。较大的值(4096,8192)提供更流畅的播放但使用更多内存。
推荐配置:
- 低延迟:(256, 1024) - 用于实时通信
- 高质量:(1024, 4096) - 用于音乐播放
- 平衡:(512, 2048) - 用于一般应用程序
返回值: void
抛出: 如果初始化失败则抛出 Error