如何在Samsung设备中连接免提时更改麦克风以进行录制?

时间:2017-12-13 19:12:58

标签: android audio samsung-mobile opensl jack

我在Android中与OpenSL_ES合作,当我用免提连接耳机时,在三星设备中选择麦克风来源时遇到了一些问题。

问题在于,无论我在OpenSL_ES中设置了什么麦克风源,增益配置都会改变,但麦克风始终是免提麦克风。换句话说,当我连接免提设备时,我无法使用设备内置麦克风。

我试过了:

将麦克风源更改为所有可用来源:

//ioInternals.micSource = SL_ANDROID_RECORDING_PRESET_NONE;       
//ioInternals.micSource = SL_ANDROID_RECORDING_PRESET_GENERIC;    
ioInternals.micSource = SL_ANDROID_RECORDING_PRESET_CAMCORDER;
//ioInternals.micSource = SL_ANDROID_RECORDING_PRESET_VOICE_RECOGNITION;
//ioInternals.micSource = SL_ANDROID_RECORDING_PRESET_VOICE_COMMUNICATION;
//ioInternals.micSource = SL_ANDROID_RECORDING_PRESET_UNPROCESSED;

res = (*recorderConfig)->SetConfiguration(recorderConfig, SL_ANDROID_KEY_RECORDING_PRESET,&ioInternals.micSource, sizeof(SLuint32));

以上都不允许我更改来源(仅限增益配置)

我读过一些" hack"可以在SL_ANDROID_RECORDING_PRESET_NONE中设置为OpenSL_ES然后使用Java中的MediaRecorder类来准备录音机,同时更改麦克风源(如9)以检查其中一个是否会使手机更改源设备内置麦克风,因此OpenSL_ES将采用默认麦克风。由于它们在不同的环境中工作,这并没有多大意义,但是花时间进行测试,而且当免提连接时,MediaRecorder不会更改麦克风源。

我看到的一个选项是在三星的Jack库中开发我的麦克风模块,假设该库可以更改麦克风源。但是,我不确定这是可能的。

问题: 你知道我怎么解决这个问题吗?

我已经看到一些应用程序可以使这项工作成功,但我不知道他们正在做什么来完成任务。

0 个答案:

没有答案