将两个立体声通道组合成单声道?
Posted
技术标签:
【中文标题】将两个立体声通道组合成单声道?【英文标题】:Combine both stereo channels into mono? 【发布时间】:2011-08-09 14:06:34 【问题描述】:我梳理了AudioManager,找不到任何 API 或设置来从立体声切换到单声道(两个通道的信号是两个立体声通道的总和)。
在 android 中是否有可能实现这一点?
【问题讨论】:
您找到解决方案了吗? 【参考方案1】:AudioManager 类中有一个名为setParameters
的方法可能 会这样做。不幸的是,API 并不清楚它的作用:
public void setParameters (String keyValuePairs)
为音频硬件设置可变数量的参数值。
参数
keyValuePairs 参数键值对列表,格式为:key1=value1;key2=value2;...
如果我们在 AudioManager.java 中查看该方法的源代码:
/**
* Sets a variable number of parameter values to audio hardware.
*
* @param keyValuePairs list of parameters key value pairs in the form:
* key1=value1;key2=value2;...
*
*/
public void setParameters(String keyValuePairs)
Audiosystem.setParameters(keyValuePairs);
然后查看 AudioSystem.java:
/*
* Sets a group generic audio configuration parameters. The use of these parameters
* are platform dependant, see libaudio
*
* param keyValuePairs list of parameters key value pairs in the form:
* key1=value1;key2=value2;...
*/
public static native int setParameters(String keyValuePairs);
那里没有太多信息。看起来参数可能是特定于硬件的,我什至不确定这些参数是否能满足您的需求。
您是要在整个系统范围内设置此设置还是仅在一个应用中设置?我假设是系统范围的,但如果不是这样,我想它会更容易。
【讨论】:
+1 已用于您的研究。在接受之前,我必须对此进行测试。回答您的问题,是的,系统范围内的。【参考方案2】:过去三年来,Android 一直存在一个未解决的问题,但 Google 尚未对此作出回应:
https://code.google.com/p/android/issues/detail?id=17337
如果您的设备已植根并安装了 BusyBox,则可以使用 Google Play 商店中的 Boeffla Sound Control 应用程序。
【讨论】:
以上是关于将两个立体声通道组合成单声道?的主要内容,如果未能解决你的问题,请参考以下文章