android pcm调节音量,调整PCM语音数据的音量

通过编程实现调整PCM的音量,具体做法是乘上一个固定的数,但是要考虑数据的溢出问题,代码如下:

//调节PCM数据音量

//comment : 对PCM数据的音量进行放大

//parameter :

// pData PCM数据

// nLen PCM数据的长度

// nBitsPerSample 每个Sample的位数,一般为8的整数

// multiple 放大倍数

//result : S_OK 成功

int AmplifyPCMData(BYTE* pData, int nLen, int nBitsPerSample, float multiple)

{

int nCur = 0;

if (16 == nBitsPerSample)

{

while (nCur < nLen)

{

short* volum = (short*)(pData + nCur);

*volum = (*volum) * multiple;

if (dwData < -0x8000)

{

dwData = -0x8000;

}

if (*volum > SHRT_MAX)//爆音的处理

{

*volum = SHRT_MAX;

}

*(short*)(pData + nCur) = *volum ;

nCur += 2;

}

}

else if (8 == nBitsPerSample)

{

while (nCur < nLen)

{

BYTE* volum = pData + nCur;

*volum = (*volum) * multiple;

if (*volum > 255)//爆音的处理

{

*volum = 255;

}

*pData = *volum ;

nCur ++;

}

}

return S_OK;

}

调整完后效果可以使用Audacity对比:

034ecd900281?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值