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

是否有可能在Android中完成此任务?

最佳答案

AudioManager类中有一个叫做 setParameters 的方法可以做到这一点。不幸的是,API对其功能尚不十分清楚:



如果我们在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);

那里没有太多信息。看来参数可能是特定于硬件的,而且我甚至不确定这些参数是否可以满足您的期望。

您是要在系统范围内还是仅在一个应用程序中进行设置?我假设是系统范围的,但是如果不是这种情况,我想这会更容易。

10-08 20:28