# sys.mediaFoundation.mp3Decoder 库模块帮助文档

[MP3 增量解码](https://www.aardio.com/zh-cn/docs/library/sys/mediaFoundation/mp3Decoder/)

## sys.mediaFoundation 成员列表 <a id="sys.mediaFoundation" href="#sys.mediaFoundation">&#x23;</a>

### sys.mediaFoundation.mp3Decoder <a id="sys.mediaFoundation.mp3Decoder" href="#sys.mediaFoundation.mp3Decoder">&#x23;</a>
用 Windows 自带 MP3 解码器把内存中的 MP3 字节增量解码为 16 位 PCM。  
不播放、不读文件、不自动探测格式。一个实例处理一条固定格式的连续 MP3。  
同步调用，不需要消息循环；在创建对象的线程使用。  
[使用指南](https://www.aardio.com/zh-cn/docs/library/sys/mediaFoundation/mp3Decoder/)

### sys.mediaFoundation.mp3Decoder() <a id="sys.mediaFoundation.mp3Decoder" href="#sys.mediaFoundation.mp3Decoder">&#x23;</a>
[返回对象:sysMfMp3DecoderObject](#sysMfMp3DecoderObject)

### sys.mediaFoundation.mp3Decoder(options) <a id="sys.mediaFoundation.mp3Decoder" href="#sys.mediaFoundation.mp3Decoder">&#x23;</a>
创建解码器，失败返回 null,错误信息。  
options 必须指定 MP3 的实际 sampleRate 与 channels（1 或 2），输出为同采样率、同声道数的 PCM。  
例如 Edge TTS 是 {sampleRate=24000;channels=1}。

## sysMfMp3DecoderObject 成员列表 <a id="sysMfMp3DecoderObject" href="#sysMfMp3DecoderObject">&#x23;</a>

### sysMfMp3DecoderObject.close() <a id="sysMfMp3DecoderObject.close" href="#sysMfMp3DecoderObject.close">&#x23;</a>
释放解码器，可重复调用。已返回的 PCM 不受影响

### sysMfMp3DecoderObject.decode(data) <a id="sysMfMp3DecoderObject.decode" href="#sysMfMp3DecoderObject.decode">&#x23;</a>
解码一段 MP3（字符串或 buffer），块可以任意切分，不必按帧对齐。  
成功返回本次得到的 PCM 块数组（空数组表示暂时没有输出，不是错误也不是结束），  
失败返回 null,err；失败后解码器不能继续使用。可用 raw.join 合并数组。

### sysMfMp3DecoderObject.ended <a id="sysMfMp3DecoderObject.ended" href="#sysMfMp3DecoderObject.ended">&#x23;</a>
是否已调用 finish

### sysMfMp3DecoderObject.error <a id="sysMfMp3DecoderObject.error" href="#sysMfMp3DecoderObject.error">&#x23;</a>
解码失败信息

### sysMfMp3DecoderObject.finish() <a id="sysMfMp3DecoderObject.finish" href="#sysMfMp3DecoderObject.finish">&#x23;</a>
输入结束，排空解码器，返回剩余的 PCM 块数组，失败返回 null,err。  
重复调用返回空数组。之后不能再调用 decode。

### sysMfMp3DecoderObject.format <a id="sysMfMp3DecoderObject.format" href="#sysMfMp3DecoderObject.format">&#x23;</a>
输出格式：codec="pcm",sampleRate,channels,bitsPerSample=16，可直接传给 sys.waveOut

### sysMfMp3DecoderObject.inputBytes <a id="sysMfMp3DecoderObject.inputBytes" href="#sysMfMp3DecoderObject.inputBytes">&#x23;</a>
已送入解码器的 MP3 字节数

### sysMfMp3DecoderObject.pcmBytes <a id="sysMfMp3DecoderObject.pcmBytes" href="#sysMfMp3DecoderObject.pcmBytes">&#x23;</a>
已输出的 PCM 字节数
