android左右声道接反具体修正方法
原理:
对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左右声道接反具体修正方法相关推荐
- android 左右声道,android耳机左右声道接反具体修正方法
我们经常可以看到很多人都戴着耳机,然而耳机中有一个小小的细节,大家都知道吗?下面爱站技术频道小编就来为大家介绍android耳机左右声道接反具体修正方法,让我们一起来学习吧! 可以用如下方法: 修改A ...
- Android APK破解、反编译、打包签名基本思路与方法
Android APK破解.反编译.打包签名基本思路与方法 2013年6月1日星期六 ...
- Android左右声道控制软件,Android左右声道的控制
效果图 源码 源码下载,请先移步Android左右声道的控制 我这里主要是用到了AudioTrack实现的左右声道的控制,手机一般都只有两个声道,即左声道和右声道,我们在输出的时候可以选择单声道,也可 ...
- Android APK系列6-------APK反编译
Android APK系列6-------APK反编译 前面系列提到的工具在此依然有用,比如可以用yaff2img浏览器或者unyaffs来解压system.img,如果手里是手机,则需要用豌豆荚或3 ...
- Android左右声道的控制
效果图 源码 源码下载,请先移步Android左右声道的控制 我这里主要是用到了AudioTrack实现的左右声道的控制,手机一般都只有两个声道,即左声道和右声道,我们在输出的时候可以选择单声道,也可 ...
- Android学习必经之路--apk反编译
Android开发学习总结(六)-- APK反编译 - 孤傲苍狼 - 博客园 孤傲苍狼 只为成功找方法,不为失败找借口! Android开发学习总结(六)-- APK反编译 学习和开发Android应 ...
- android studio assets 添加,Android studio 添加assets文件夹的方法
Android studio 添加assets文件夹的方法 我们知道Eclipse创建的工程默认是有个assets文件夹的,但是Android studio默认没有帮我们创建,那么我们就自己创建一个就 ...
- 车载导航android音频策略,Android车载导航全局声控装置及方法
Android车载导航全局声控装置及方法 [技术领域] [0001]本发明涉及智能Android车载系统领域,尤其涉及一种Android车载导航全局声控装置及方法. [背景技术] [0002]在行车过 ...
- 超表面透镜相位matlab,可调超表面的抛物线梯度相位修正方法及变/定焦距透镜的制作方法...
可调超表面的抛物线梯度相位修正方法及变/定焦距透镜的制作方法 [技术领域] [0001] 本发明属于可调超表面技术领域,具体设及一种可调超表面的抛物线梯度相位修 正方法及变/定焦距透镜. [背景技术] ...
最新文章
- 浅谈 Kubernetes 中的服务发现
- matlab 设置路径 Linux
- python携程酒店评论_携程酒店评论爬虫心得
- 产品经理怎么做可行性分析?
- etcd常用操作介绍
- MyBatis映射器出错,已解决(Multiple annotations found at this line:)
- Rust:mod、crate、super、self、pub use等模块系统用法梳理
- C++ const与static
- Java开发帮助文档
- 开源1A锂电池充电板TP4056原理图
- redis集群原理及三种模式详解
- linux笔记本设置开机自动禁用触摸板
- 基于解决sci和ei等国外论文检索难等问题的辅助软件分析
- 坚持并活下去!cxuan 在 CSDN 的 2020 年终总结。
- 源发行版17需要目标发行版17
- 【历史上的今天】3 月 25 日:Ada 语言之父诞生;第一个维基站点问世;TechTV 被收购
- 计算机网络应用层(二):DNS协议详解
- xshell4连接ubuntu,报错No matching outgoing encryption
- MySQL中关于JOIN的用法全解
- 一次SQL如何查重,去重小记