0

AndroidのOpenSLのボリュームインターフェイスに問題があります。次のようなボリュームインターフェイスを使用して出力ミックスオブジェクトを作成しようとすると、次のようになります。

const SLInterfaceID interfaceIDs[1]={SL_IID_VOLUME};
const SLboolean interfaceRequirements[1]={SL_BOOLEAN_TRUE};

SLresult result=(*engineInterface)->CreateOutputMix(engineInterface,&outputObject,1,interfaceIDs,interfaceRequirements);

resultSL_RESULT_FEATURE_UNSUPPORTEDボリュームインターフェイスが仕様で義務付けられているようにリストされている場合でも、戻ってきます。

1要求されたインターフェイスを無視するようにをに変更する0と、出力ミックスオブジェクトが作成されますが、しようとすると明らかに失敗しますGetInterface(outputObject,SL_IID_VOLUME,&volumeInterface)

ここに表示されるボリュームインターフェイスの唯一の言及は、を使用する場合のボリューム計算に関連していEnableStereoPositionます。

4

1 に答える 1

0

Androidは完全なOpenSLES仕様をサポートしていません。2番目のリンクの表を見ると、Androidはオーディオプレーヤーでのボリュームのみをサポートしており、レコーダー、エンジン、または出力ミックスはサポートしていないことがわかります。この機能は、実際にはサポートされていません。

于 2011-12-30T15:04:00.720 に答える