UNPKG

@ra2web/wavefile

Version:

WAV file processing library from ra2web project

129 lines (94 loc) 2.88 kB
# @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(); ``` ### Base64和数据URI支持 ```javascript // 转换为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项目中提取。有关问题和贡献,请参考原始项目仓库。