原理:
对buffer的奇偶位数的数据进行对调
C++ tinyalsa 写法:
void AudioYusuStreamOut::swS2M(const void* buffer, size_t bytes)
{
uint32 Idx_i;
int16 PCM_M;
short* pbuffer=(short*)buffer;
//enable software stereo to mono
for(Idx_i = 0; Idx_i>1; Idx_i+=2)
{
PCM_M = pbuffer[Idx_i+1];
pbuffer[Idx_i+1]=pbuffer[Idx_i];
pbuffer[Idx_i]=PCM_M;
}
}

JAVA 写法:
/**
* 左右声道进行反转
* @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;
}

立体声拆分
现在需要把它拆分成左右声道来进行其他处理,可以通过如下方式来实现:

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 进行其他处理
}

android左右声道接反具体修正方法相关推荐

  1. android 左右声道,android耳机左右声道接反具体修正方法

    我们经常可以看到很多人都戴着耳机,然而耳机中有一个小小的细节,大家都知道吗?下面爱站技术频道小编就来为大家介绍android耳机左右声道接反具体修正方法,让我们一起来学习吧! 可以用如下方法: 修改A ...

  2. Android APK破解、反编译、打包签名基本思路与方法

    Android APK破解.反编译.打包签名基本思路与方法 2013年6月1日星期六                                                           ...

  3. Android左右声道控制软件,Android左右声道的控制

    效果图 源码 源码下载,请先移步Android左右声道的控制 我这里主要是用到了AudioTrack实现的左右声道的控制,手机一般都只有两个声道,即左声道和右声道,我们在输出的时候可以选择单声道,也可 ...

  4. Android APK系列6-------APK反编译

    Android APK系列6-------APK反编译 前面系列提到的工具在此依然有用,比如可以用yaff2img浏览器或者unyaffs来解压system.img,如果手里是手机,则需要用豌豆荚或3 ...

  5. Android左右声道的控制

    效果图 源码 源码下载,请先移步Android左右声道的控制 我这里主要是用到了AudioTrack实现的左右声道的控制,手机一般都只有两个声道,即左声道和右声道,我们在输出的时候可以选择单声道,也可 ...

  6. Android学习必经之路--apk反编译

    Android开发学习总结(六)-- APK反编译 - 孤傲苍狼 - 博客园 孤傲苍狼 只为成功找方法,不为失败找借口! Android开发学习总结(六)-- APK反编译 学习和开发Android应 ...

  7. android studio assets 添加,Android studio 添加assets文件夹的方法

    Android studio 添加assets文件夹的方法 我们知道Eclipse创建的工程默认是有个assets文件夹的,但是Android studio默认没有帮我们创建,那么我们就自己创建一个就 ...

  8. 车载导航android音频策略,Android车载导航全局声控装置及方法

    Android车载导航全局声控装置及方法 [技术领域] [0001]本发明涉及智能Android车载系统领域,尤其涉及一种Android车载导航全局声控装置及方法. [背景技术] [0002]在行车过 ...

  9. 超表面透镜相位matlab,可调超表面的抛物线梯度相位修正方法及变/定焦距透镜的制作方法...

    可调超表面的抛物线梯度相位修正方法及变/定焦距透镜的制作方法 [技术领域] [0001] 本发明属于可调超表面技术领域,具体设及一种可调超表面的抛物线梯度相位修 正方法及变/定焦距透镜. [背景技术] ...

最新文章

  1. 浅谈 Kubernetes 中的服务发现
  2. matlab 设置路径 Linux
  3. python携程酒店评论_携程酒店评论爬虫心得
  4. 产品经理怎么做可行性分析?
  5. etcd常用操作介绍
  6. MyBatis映射器出错,已解决(Multiple annotations found at this line:)
  7. Rust:mod、crate、super、self、pub use等模块系统用法梳理
  8. C++ const与static
  9. Java开发帮助文档
  10. 开源1A锂电池充电板TP4056原理图
  11. redis集群原理及三种模式详解
  12. linux笔记本设置开机自动禁用触摸板
  13. 基于解决sci和ei等国外论文检索难等问题的辅助软件分析
  14. 坚持并活下去!cxuan 在 CSDN 的 2020 年终总结。
  15. 源发行版17需要目标发行版17
  16. 【历史上的今天】3 月 25 日:Ada 语言之父诞生;第一个维基站点问世;TechTV 被收购
  17. 计算机网络应用层(二):DNS协议详解
  18. xshell4连接ubuntu,报错No matching outgoing encryption
  19. MySQL中关于JOIN的用法全解
  20. 一次SQL如何查重,去重小记

热门文章

  1. 不用对 雷蛇影鲛终极版thx 耳机开启空间音效。
  2. 00 Linux内核就像软件外包公司的老板
  3. oracle查看锁表的sql
  4. 马云寄语清华毕业生:这是一个纠结的时代
  5. chrome automation extension崩溃(selenium +chromedriver)
  6. java实现点赞功能
  7. IntelliJ Idea快捷键
  8. 转贴-《生死不离》-王平久创作 成龙主唱
  9. [附源码]Python计算机毕业设计SSM乐器销售管理系统(程序+LW)
  10. STM32 精准延时