SLDeviceVolumeItf
Android で のインターフェイスを取得しようとしましたRecorderObject
が、エラーが発生しました。SL_RESULT_FEATURE_UNSUPPORTED.
OpenSL ES の Android 実装が の音量設定をサポートしていないことを読みましたAudioRecorder
。本当?
はいの場合、回避策はありますか? マイクゲインが非常に高いため、Galaxy Nexus でうまく動作しない VOIP アプリケーションがあります。
また、 を新しいオーディオ ソースSL_IID_ANDROIDCONFIGURATION
に設定しようとしましたが、ここでもエラー 12 (サポートされていません) が発生します。streamType
VOICE_COMMUNINCATION
// 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);
}
レコーダーオブジェクトが作成されましたが、SL_IID_ANDROIDCONFIGURATION
インターフェイスを取得できません。Galaxy Nexus (ICS)、HTC sense (ICS)、Motorola Blur (Gingerbread) で試してみました。NDK バージョン 6 を使用しています。