MPEGLAYER3WAVEFORMAT 结构 (mmreg.h)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

MPEGLAYER3WAVEFORMAT 结构描述 MPEG 音频第 3 层 (MP3) 音频格式。

语法

typedef struct mpeglayer3waveformat_tag {
  WAVEFORMATEX wfx;
  WORD         wID;
  DWORD        fdwFlags;
  WORD         nBlockSize;
  WORD         nFramesPerBlock;
  WORD         nCodecDelay;
} MPEGLAYER3WAVEFORMAT;

成员

wfx

用于指定基本音频格式的 WAVEFORMATEX 结构。 wFormatTag 成员必须WAVE_FORMAT_MPEGLAYER3cbSize 成员必须至少为 12。 (对于 cbSize,可以使用 mmreg.h. ) 中定义的常量MPEGLAYER3_WFX_EXTRA_BYTES

wID

将此结构成员设置为 MPEGLAYER3_ID_MPEG

fdwFlags

指示是否使用填充将平均比特率调整为采样率。 使用以下值之一:

含义
MPEGLAYER3_FLAG_PADDING_ISO
0x00000000
根据需要插入填充以实现指定的平均比特率。
MPEGLAYER3_FLAG_PADDING_ON
0x00000001
始终插入填充。 平均比特率可能高于说明。
MPEGLAYER3_FLAG_PADDING_OFF
0x00000002
从不插入填充。 平均比特率可能低于所述。

nBlockSize

块大小(以字节为单位)。 此值等于帧长度(以字节 x nFramesPerBlock 为单位)。 对于 MP3 音频,帧长度的计算方式如下:144 x (比特率/采样率) + 填充。

nFramesPerBlock

每个块的音频帧数。

nCodecDelay

示例中的编码器延迟。 如果不知道此值,请将此结构成员设置为零。

要求

   
标头 mmreg.h

另请参阅

DirectShow 结构