我试图获取Android上的SLDeviceVolumeItf
界面,但出现错误:RecorderObject
SL_RESULT_FEATURE_UNSUPPORTED.
我读到 OpenSL ES 的 Android 实现不支持AudioRecorder
. 真的吗?
如果是,有解决方法吗?我有一个 VOIP 应用程序,它在 Galaxy Nexus 上运行不佳,因为麦克风增益非常高。
我还尝试将SL_IID_ANDROIDCONFIGURATION
设置streamType
为新的VOICE_COMMUNINCATION
音频源,但我再次收到错误 12(不支持)。
// create audio recorder
const SLInterfaceID id[2] = { SL_IID_ANDROIDSIMPLEBUFFERQUEUE, SL_IID_ANDROIDCONFIGURATION };
const SLboolean req[2] = { SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE };
result = (*engine)->CreateAudioRecorder(engine, &recorderObject, &audioSrc, &audioSnk, 2, id, req);
if (SL_RESULT_SUCCESS != result) {
return false;
}
SLAndroidConfigurationItf recorderConfig;
result = (*recorderObject)->GetInterface(recorderObject, SL_IID_ANDROIDCONFIGURATION, &recorderConfig);
if(result != SL_RESULT_SUCCESS) {
error("failed to get SL_IID_ANDROIDCONFIGURATION interface. e == %d", result);
}
recorderObject 已创建,但我无法获取SL_IID_ANDROIDCONFIGURATION
接口。我在 Galaxy Nexus (ICS)、HTC sense (ICS) 和 Motorola Blur (Gingerbread) 上进行了尝试。我正在使用 NDK 版本 6。