Android立体声pcm的数据结构,左右声道拆分、左右声道反转
立体声pcm数据结构
Android录音默认录制生成的是pcm文件,假设我们设置采样率为16K,录音类型为AudioFormat.CHANNEL_IN_STEREO(立体声录音),数据类型为AudioFormat.ENCODING_PCM_16BIT。
则pcm文件的数据结构大致为2byte左声道、2byte右声道、2byte左声道、2byte右声道….
立体声拆分
现在需要把它拆分成左右声道来进行其他处理,可以通过如下方式来实现:
private void splitStereoPcm(byte[] data) {int monoLength = data.length / 2;byte[] leftData = new byte[monoLength];byte[] rightData = new byte[monoLength];for (int i = 0; i < monoLength; i++) {if (i % 2 == 0) {System.arraycopy(data, i * 2, leftData, i, 2);} else {System.arraycopy(data, i * 2, rightData, i - 1, 2);}}//TODO 使用leftData、rightData 进行其他处理}
左右声道反转
假如我们需要将左、右声道反转,也很简单,具体的代码如下:
/*** 左右声道进行反转* @param data* @return* 反转后的数据*/private byte[] getReversedData(byte[] data) {byte[] reversed = new byte[data.length];for (int i = 0; i < data.length - 3; i = i + 4) {reversed[i] = data[i+2];reversed[i+1] = data[i+3];reversed[i+2] = data[i];reversed[i+3] = data[i+1];}return reversed;}
Android立体声pcm的数据结构,左右声道拆分、左右声道反转相关推荐
- android 左右声道,Android立体声pcm的数据结构,左右声道拆分、左右声道反转
立体声pcm数据结构 Android录音默认录制生成的是pcm文件,假设我们设置采样率为16K,录音类型为AudioFormat.CHANNEL_IN_STEREO(立体声录音),数据类型为Audio ...
- android中调用fft函数,J使用PCM数据在Android中转换FFT(JTransforms FFT in Android from PCM data)...
J使用PCM数据在Android中转换FFT(JTransforms FFT in Android from PCM data) 我一直在玩这个游戏已经有一段时间了,我无法弄清楚我在这里要做的事情. ...
- (原)hisi3531立体声pcm实现播放方式
版权声明:本文为博主原创文章,未经博主允许不得转载(http://www.cnblogs.com/lihaiping/p/5251854.html) 最近在使用hisi3531做一个项目,需要实现本地 ...
- PCM音频处理一:分离左右声道音频
文章目录 PCM16LE简介 函数代码 测试用例 本文介绍了将PCM16LE双声道数据中左声道和右声道的数据分离成两个文件,PCM音频数据可以使用音频编辑软件导入查看,推荐免费开源的音频编辑软件Aud ...
- 左声道,右声道和立体声
1.左声道:一般是把相关的低音频区信号压缩后经此音轨播放人声对白.译音大多在此. 右声道:一般是把相关的高.中音频区信号压缩后经此音轨播放,以求声音播放圆润. 立体声:除用左.右声道音轨播放外,经对声 ...
- PCM音频处理(1)——分离声道、以及声音处理
文章目录 一.声道分离 二.对左边声道进行降半处理 一.声道分离 #include <stdio.h> #include <stdlib.h>int pcm16_split(c ...
- 16bit的pcm双声道转单声道
最近搞音频有点多,就稍微写一下,记录一下成长经历吧. pcm格式应该算是音频的原始数据吧,后面再经过不同的编码算法,转为不同的音频文件,比如mp3,amr等等.转为amr有很成熟的编码算法,AMR-N ...
- FINAL CUT 当中设置左右声道及多声道的方法
FINAL CUT 当中设置左右声道及多声道的方法 FINAL CUT 设置左右声道 设置多声道 设置 工作站表格 FINAL CUT FINAL CUT 软件当中默认的设置是输出为立体声的. 当需要 ...
- FFmpeg源码分析:获取声道布局与声道数
FFmpeg在libavutil模块封装有获取声道布局.声道名字与声道数的API.声道布局包括:单声道.立体声道.环绕声道.5.0声道.5.1声道.7.0声道.7.1声道等.声道掩码包括:前方左边.前 ...
最新文章
- 安装Visual C ++进行跨平台移动开发
- error和exception
- Java中关于单核处理多个线程的认识与了解
- 数组:完成等差等比数列,及其他数列
- 小青蛙oracle跟踪,Oracle 存储过程:游标
- (zt)OpenGL中的Alpha测试,深度测试,模板测试,裁减测试
- Java连接数据库(学生管理系统案例,可以实现增删改查)
- Lantek钣金软件的介绍与安装
- android和电脑共享文件,安卓手机怎么访问电脑共享文件
- vue前端使用xlsx和 xlsx-style 导出excel,并修改样式
- 安装Ofiice2016 错误提示“检查您的internet连接是否工作正常”等
- Windows锁机病毒
- android接口的作用是什么意思,Android开发中接口的用处
- 计算机发展史评课议课稿,历史课评课稿
- NANK南卡发布新品旗舰版——南卡护眼台灯Pro,延续“护眼”理念
- elementui icon图标
- 更改文字颜色为红色HTMl语言,红色字体CSS_设置html字体颜色为红色
- 轻量级的layui框架后台模板
- 为什么正则表达式中.*可以匹配任意字符?
- 查找文献必备的文献下载神器