WAV file processing library from ra2web project
npm install @ra2web/wavefile一个从ra2web项目中提取的WAV文件处理库。该库提供了读取、写入和操作WAV音频文件的全面功能。
- 读写WAV文件
- 支持多种位深(8、16、24、32、64位)
- 支持浮点音频格式(32f、64)
- 音频压缩格式(IMA-ADPCM、A-Law、μ-Law)
- 采样率转换
- 位深转换
- 音频格式转换
- Base64编码/解码
- 数据URI支持
``bash`
npm install @ra2web/wavefile
`javascript
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();
`
`javascript
// 转换为不同压缩格式
wav.toALaw(); // 转换为A-Law
wav.toMuLaw(); // 转换为μ-Law
wav.toIMAADPCM(); // 转换为IMA-ADPCM
// 从压缩格式转换
wav.fromALaw();
wav.fromMuLaw();
wav.fromIMAADPCM();
`
`javascript
// 转换为Base64
const base64String = wav.toBase64();
// 从Base64加载
wav.fromBase64(base64String);
// 转换为数据URI
const dataUri = wav.toDataURI();
// 从数据URI加载
wav.fromDataURI(dataUri);
`
#### 构造函数
- 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项目中提取。有关问题和贡献,请参考原始项目仓库。