我梳理了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);
那里没有太多信息。看来参数可能是特定于硬件的,而且我甚至不确定这些参数是否可以满足您的期望。
您是要在系统范围内还是仅在一个应用程序中进行设置?我假设是系统范围的,但是如果不是这种情况,我想这会更容易。