记录一下自己写的双声道音频切分成单声道音频的代码

原始音频的格式为:采样率16KHZ 采样点精度16位 双声道

#include <iostream>
#include <stdio.h>using namespace std;#define PCMTESTint main()
{
#ifdef PCMTESTFILE *fp = fopen(".\\srpcm\\test.pcm", "rb");
#elseFILE *fp = fopen(".\\srpcm\\txttxt.txt", "rb");
#endifif (fp == NULL){printf("Open File Failed!\n");return 0;}fseek(fp, 0L, SEEK_END);long fileLength = ftell(fp);fseek(fp,0L, SEEK_SET);printf("获取文件的长度\n", fileLength);printf("File Length %ld byte\n", fileLength);char* pBuff = new char[fileLength];memset(pBuff, 0, fileLength);int readLength = fread(pBuff, sizeof(char), fileLength, fp);printf("readLength = %d\n", readLength);//采样精度16bit = 2 Byte,所以这里用了shortshort *pBuffLeft = new short[fileLength / 4];short *pBuffRight = new short[fileLength / 4];memset(pBuffLeft, 0, fileLength / 2);memset(pBuffLeft, 0, fileLength / 2);for (int i = 0; i < (fileLength / 4); i++){pBuffLeft[i] = ((short*)pBuff)[i * 2];pBuffRight[i] = ((short*)pBuff)[(i * 2) + 1];}#ifdef PCMTESTFILE *fpLeft = fopen(".\\srpcm\\testLeft.pcm", "wb");FILE *fpRight = fopen(".\\srpcm\\testRight.pcm", "wb");FILE *fpAll = fopen(".\\srpcm\\testAll.pcm", "wb");
#elseFILE *fpLeft = fopen(".\\srpcm\\txtLeft.txt", "wb");FILE *fpRight = fopen(".\\srpcm\\txtRight.txt", "wb");FILE *fpAll = fopen(".\\srpcm\\txtAll.txt", "wb");
#endiffwrite(pBuffLeft, sizeof(char), fileLength / 2, fpLeft);fwrite(pBuffRight, sizeof(char), fileLength / 2, fpRight);fwrite(pBuff, sizeof(char), fileLength, fpAll);fclose(fpLeft);fclose(fpRight);fclose(fpAll);return 0;
}

C++ 双声道PCM音频分成单声道音频相关推荐

  1. 音频PCM数据的单声道、双声道之间的转换

    在使用tinyalsa处理PCM音频数据时发现该设备只能以双声道形式打开设备. tinypcminfo工具可以查看设备信息. out和in里面channels 最大和最小值都是2.但是实际使用中有时候 ...

  2. 单声道音频播放出立体声效果

    原创文章,转载请注明出处 http://www.mingjianhua.com/post/MonoAudiotoStereo.html 有人可能会说,单声道音频怎么可能能播放出立体声效果呢? 单声道是 ...

  3. ES8312低功耗单声道音频编解码电路设计

    ES8312应用特点: 低功耗的多位delta-sigma音频ADC和DAC低功耗单声道音频编解码器 I2S/PCM主或从串行数据端口256/384Fs.USB 12/24 MHz和其他 非标准音频系 ...

  4. ES8311 低功耗单声道音频编解码器(中文)

    版本11.0 低功耗单声道音频编解码器 特征 系统 • 高性能.低功耗多位音频ADC和DAC • I2S/PCM 主串行或从串行数据端口 • 256/384Fs, USB 12/24 MHz 和其他非 ...

  5. 基于C的双声道PCM文件数据处理

    本次练习要求:将单声道origin_audio.pcm音频文件存入到双声道two_channel_audio.pcm的左声道中,将音量调节后的文件存入到右声道中. 如何将数据分别存储到左.右声道中,首 ...

  6. CS5250(无电感电荷泵升压5.3W防破音单声道音频功放IC)

    产品名称: CS5250(无电感电荷泵升压5.3W防破音单声道音频功放IC) 封装形式: ESOP-10 兼容型号: CS5230 产品功能: 恒定5.3W/2.5V-5.5V(内置自适应Charge ...

  7. STM32音频I2S单声道处理方法

    STM32的M4系列芯片支持全双工的I2S,而一般做语音信号处理的场景一般都采用单声道的处理方法,因为通常情况下左右声道采集的语音都是一样的.然而DMA方式下,STM32的芯片不像DSP那样支持DMA ...

  8. 使用audacity生成单声道音频

    测试双喇叭时,可以单独使用左声道或者右声道来测试上下喇叭,单声道音源制作方法如下 1.先安装工具audacity,ubuntu下使用命令安装apt-get install audacity 2.使用a ...

  9. 嵌入式Linux mplayer 单声道音频 改双声道 播放 方法

    正点原子IMX6ULL的喇叭看原理图应该是接到了右声道上 所以在播放左单声道的视频或音频,会发现没有声音,当然板子上有预留的端口可以外接喇叭,但板子上有喇叭,干嘛外接呢?(手动滑稽) 所以可以在设置 ...

  10. 双声道pcm文件拆解成左右两个单声道文件

    本人写过ffmpeg读取系统声音,生成音频原始流pcm文件 文中定义的channel_layout 为AV_CH_LAYOUT_STEREO,即左右通道的双通道,现在将这个双通道文件拆解成左右两个通道 ...

最新文章

  1. QPS/TPS/并发量/系统吞吐量
  2. POJ 2483 Cows(树状数组)
  3. Oracle入门(十二G1)修改序列(Sequence)起始值的方法
  4. CentOS上使用netstat命令查证DDOS***
  5. 神秘的40毫秒延迟与 TCP_NODELAY
  6. php验证码完整功能,用PHP实现验证码功能
  7. java里包含怎么算_java中怎么判断一个字符串中包含某个字符或字符串
  8. 基于arcpy包在arcmap里面实现图层的随机选取
  9. 心形图案爱心代码编程c语言
  10. matlab如何仿真递推型dft算法,并联型有源滤波器的设计与仿真
  11. 【离散数学】求闭包的例题
  12. 谷歌地球不能用了,我推荐个替代方案,免费软件
  13. 一个屌丝程序猿的人生(五十)
  14. luogu 2411 白银莲花池 luogu 1606 Lilypad Pond
  15. 缓存路由组件+路由组件的2个生命周期钩子 activated 和 deactivated
  16. ESX4.1虚拟机识别U盘
  17. SAS Planet+ArcGIS
  18. 移动硬盘-移动硬盘提示格式化的解决办法
  19. 读书点亮生活-教育成本
  20. WPF开发一款软件自动升级组件

热门文章

  1. c语言乐谱提取软件,SmartScore X2 Pro(乐谱扫描识别软件) V10.5.4 官方版
  2. SQLServer游标详解
  3. Liquibase修改表字段
  4. 关于VS2015卸载后,重装无法修改路径问题
  5. 概率算法(算法分析与设计)
  6. 超强合集:OCR文本检测干货汇总(含论文、源码、demo等资源)
  7. java有关物流管理的简历_Java开发实习生大学生简历模板
  8. 个人介绍网页代码 html静态网页设计制作 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计
  9. c语言 段错误 linux
  10. CQF笔记M1L5仿真和操作随机微分方程