java转换音频采样率_音频采样率转换
发布日期:2021-10-30 21:00:34 浏览次数:1 分类:技术文章

本文共 1353 字,大约阅读时间需要 4 分钟。

buf_sizePCM = frame_info.samples * frame_info.channels;

memcpy(bufferPCM,pcm_data,buf_sizePCM);

//采样率变成8000HZ

float in[4096] = { 0 };

float out[4096] = { 0 };

int j = 0;

for (j = 0; j < 4096 && j < buf_sizePCM; j++)

{

in[j] = pcm_data[j];

}

SRC_DATA dataResample;

dataResample.data_in = in;

dataResample.data_out = out;

dataResample.input_frames = frame_info.samples;

dataResample.output_frames = frame_info.samples;

dataResample.src_ratio =  8000.0/frame_info.samplerate;

int nRetResample = src_simple(&dataResample, SRC_LINEAR, frame_info.channels);

/*

buf_sizePCM = dataResample.output_frames_gen * frame_info.channels;

for (j = 0; j < 4096 && j < buf_sizePCM; j++)

{

bufferPCM[j] = Float2UChar(dataResample.data_out[j]);

}

*/

//声道变成单声道

buf_sizePCM = dataResample.output_frames_gen * frame_info.channels;

if(frame_info.channels == 2)

{

//从双声道的数据中提取单通道

int i = 0;

for (i = 0, j = 0; i<4096 && i

{

bufferPCM[j] = Float2UChar(out[i]);

bufferPCM[j + 1] = Float2UChar(out[i + 1]);

}

buf_sizePCM = buf_sizePCM/2;

}

else

{

memcpy(bufferPCM,out,buf_sizePCM);

}

/*

//声道变成单声道

if(frame_info.channels == 2)

{

//从双声道的数据中提取单通道

for (int i = 0, j = 0; i<4096 && i

{

bufferPCM[j] = pcm_data[i];

bufferPCM[j + 1] = pcm_data[i + 1];

}

buf_sizePCM = buf_sizePCM/2;

memcpy(bufferPCM,bufferPCM,buf_sizePCM);

}

else

{

memcpy(bufferPCM,pcm_data,buf_sizePCM);

}

*/

return 0;

}

转载地址:https://blog.csdn.net/weixin_39861823/article/details/114561809 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java关键字的作用_java 常见关键字及其作用
下一篇:java百元_VB.net & java ---- 百元买百鸡题目

发表评论

最新留言

不错!
[***.144.177.141]2024年04月17日 09时50分24秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章