1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > C++音频单声道 双声道之间的转换

C++音频单声道 双声道之间的转换

时间:2020-01-25 13:38:07

相关推荐

C++音频单声道 双声道之间的转换

本篇文件介绍 音频PCM数据的单声道、双声道之间的转换

下面介绍函数参数:

一、StereoToMono函数。

双声道转单声道

参数1:资源buffer(双声道数据)

参数2:资源buffer大小(双声道数据大小)

参数3:转换后buffer(单声道数据)

static short g_sSrcAudioBuf[640];static short g_sDstAudioBuf[640];//pdata:char * pdata(原始双声道音频数据)//dlen:pdata数据长度//单字节1280长度的数据pdata 转换为640双字节数据g_sSrcAudioBufmemcpy(g_sSrcAudioBuf,pdata,dlen);StereoToMono(g_sSrcAudioBuf,640,g_sDstAudioBuf)//本地保存测试fwrite(g_sSrcAudioBuf,2,320,fp);void StereoToMono(const int16_t* src_audio,int samples_per_channel,int16_t* dst_audio) {for (int i = 0; i < samples_per_channel; i++) {dst_audio[i] = (static_cast<int32_t>(src_audio[2 * i]) + src_audio[2 * i + 1]) >> 1;}}

二、MonoToStereo函数。

单声道转双声道

参数1:资源buffer(单声道数据)

参数2:资源buffer大小(单声道数据大小)

参数3:转换后buffer(双声道数据)

代码:

static short g_sSrcAudioBuf[640];static short g_sDstAudioBuf[640];//g_sDstAudioBuf:单声道数据//320:单声道数据大小//g_sSrcAudioBuf:转换后buffer(双声道数据)MonoToStereo(g_sDstAudioBuf,320,g_sSrcAudioBuf);//本地保存测试fwrite(g_sSrcAudioBuf,2,640,fp);void MonoToStereo(const int16_t* src_audio,int samples_per_channel,int16_t* dst_audio) {for (int i = 0; i < samples_per_channel; i++) {dst_audio[2 * i] = src_audio[i];dst_audio[2 * i + 1] = src_audio[i];}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。