1.0.2 • Published 5 months ago
@ra2web/wavefile v1.0.2
@ra2web/wavefile
一个从ra2web项目中提取的WAV文件处理库。该库提供了读取、写入和操作WAV音频文件的全面功能。
特性
- 读写WAV文件
- 支持多种位深(8、16、24、32、64位)
- 支持浮点音频格式(32f、64)
- 音频压缩格式(IMA-ADPCM、A-Law、μ-Law)
- 采样率转换
- 位深转换
- 音频格式转换
- Base64编码/解码
- 数据URI支持
安装
npm install @ra2web/wavefile使用
基础用法
import { WaveFile } from '@ra2web/wavefile';
// 创建新的WaveFile实例
const wav = new WaveFile();
// 从缓冲区加载
const buffer = /* 你的音频缓冲区 */;
wav.fromBuffer(buffer);
// 访问音频属性
console.log('采样率:', wav.fmt.sampleRate);
console.log('声道数:', wav.fmt.numChannels);
console.log('位深:', wav.bitDepth);
// 获取采样值
const samples = wav.getSamples();
// 转换为不同格式
wav.toBitDepth('16');
wav.toSampleRate(44100);
// 导出为缓冲区
const outputBuffer = wav.toBuffer();格式转换
// 转换为不同压缩格式
wav.toALaw(); // 转换为A-Law
wav.toMuLaw(); // 转换为μ-Law
wav.toIMAADPCM(); // 转换为IMA-ADPCM
// 从压缩格式转换
wav.fromALaw();
wav.fromMuLaw();
wav.fromIMAADPCM();Base64和数据URI支持
// 转换为Base64
const base64String = wav.toBase64();
// 从Base64加载
wav.fromBase64(base64String);
// 转换为数据URI
const dataUri = wav.toDataURI();
// 从数据URI加载
wav.fromDataURI(dataUri);API参考
WaveFile类
构造函数
new WaveFile(buffer?)- 创建新的WaveFile实例(可选从缓冲区初始化)
方法
文件I/O
fromBuffer(buffer)- 从缓冲区加载WAV数据toBuffer()- 导出WAV数据为缓冲区fromBase64(base64String)- 从Base64字符串加载WAV数据toBase64()- 导出WAV数据为Base64字符串fromDataURI(dataUri)- 从数据URI加载WAV数据toDataURI()- 导出WAV数据为数据URI
格式转换
toBitDepth(bitDepth, dithered?)- 转换位深toSampleRate(sampleRate, options?)- 转换采样率toRIFF()- 转换为RIFF格式toRIFX()- 转换为RIFX格式
压缩
toALaw()- 转换为A-Law压缩fromALaw(bitDepth?)- 从A-Law压缩转换toMuLaw()- 转换为μ-Law压缩fromMuLaw(bitDepth?)- 从μ-Law压缩转换toIMAADPCM()- 转换为IMA-ADPCM压缩fromIMAADPCM(bitDepth?)- 从IMA-ADPCM压缩转换
音频数据
getSamples(interleaved?)- 获取音频采样值
属性
fmt- 格式块数据data- 音频数据块bitDepth- 当前位深container- 容器格式(RIFF/RIFX/RF64)
许可证
MIT
贡献
本库从ra2web项目中提取。有关问题和贡献,请参考原始项目仓库。