Android は、NDK 経由でアクセスできる OpenSL es API 経由で 3D オーディオをサポートすることになっています。それは多かれ少なかれ機能し、作成されたプレーヤーと出力ミックスを介してサウンドを再生することができました。しかし、3D サウンドの再生に必須の 3D ロケーション インターフェイス (SL_IID_3DLOCATION 定数) を備えたリスナーを実現しようとすると、. しかし、定数を SL_BOOLEAN_TRUE に設定しようとすると、LogCat に渡される CreateListener メソッドの結果は 12 になります。12 は、OpenSL es 定数 SL_RESULT_FEATURE_UNSUPPORTED の値です。以下にコードの短い部分を示します。私が何か間違ったことをしたのか、それとも機能が本当にサポートされていないのか、つまり OpenSL es の実装が 3D オーディオをサポートしていないのか、誰でも確認できますか?
#define SL_RESULT_FEATURE_UNSUPPORTED ((SLuint32) 0x0000000C)
const SLInterfaceID listener_ids[] = {SL_IID_3DLOCATION};
const SLboolean listener_req[] = {SL_BOOLEAN_TRUE};
result = (*engine)->CreateListener(engine, &listenerObject, 1, listener_ids, listener_req);
__android_log_print(ANDROID_LOG_VERBOSE, DEBUG_TAG, "CREATE: [%i]", result);
assert(SL_RESULT_SUCCESS == result);
result = (*listenerObject)->Realize(listenerObject, SL_BOOLEAN_FALSE);
__android_log_print(ANDROID_LOG_VERBOSE, DEBUG_TAG, "REALIZE: [%i]", result);
assert(SL_RESULT_SUCCESS == result);