wave 文件中的数据转换
最近很想去做音频开发,于是私自研究了下播放器,
目前用win7的 core audio 写了个小demo,界面弄了一下下,然后写到了播放部分,core audio这块的api熟悉了之后,目前开始写第一个支持的格式,从wave下手了,因为这个是最直白的格式了吧....
然后我创建了共享模式的IAudioClient,然后手头上有个wave文件,使用千千静听转换的;
pwfDeviceFormat 是WAVEFORMATEX指针
//如果数据格式不是整数或浮点则创建失败
switch (m_pwfDeviceFormat->wFormatTag)
{
case WAVE_FORMAT_IEEE_FLOAT:
m_eDeviceDataFormat = Data_Float;
break;
case WAVE_FORMAT_PCM:
m_eDeviceDataFormat = Data_Int;
break;
case WAVE_FORMAT_EXTENSIBLE:
{
WAVEFORMATEXTENSIBLE *pExt = reinterpret_cast<WAVEFORMATEXTENSIBLE*>(m_pwfDeviceFormat);
if ( KSDATAFORMAT_SUBTYPE_IEEE_FLOAT == pExt->SubFormat )
m_eDeviceDataFormat = Data_Float;
else if ( KSDATAFORMAT_SUBTYPE_PCM == pExt->SubFormat )
m_eDeviceDataFormat = Data_Int;
}
break;
default:
m_eDeviceDataFormat = Data_Unknown;
break;
}