将两个立体声通道组合成单声道?

时间:2011-08-09 14:06:34

标签: android audio

我梳理了AudioManager并且找不到任何API或设置来从立体声切换到单声道(两个声道的信号都是两个立体声声道的总和)。

在Android中完成此操作是否可行?

2 个答案:

答案 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应用程序。