我梳理了AudioManager并且找不到任何API或设置来从立体声切换到单声道(两个声道的信号都是两个立体声声道的总和)。
在Android中完成此操作是否可行?
答案 0 :(得分:3)
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 :(得分:0)
在过去的三年里,针对Android的问题一直存在,但谷歌尚未对此作出回应:
https://code.google.com/p/android/issues/detail?id=17337
如果您已根设备并安装了BusyBox,则可以使用Google Play商店中的Boeffla Sound Control应用程序。