2011-07-19 11 views
8

OpenSL ESの公式ドキュメントから読んだとおり、Audio Playerから音量レベルを設定する機能があります。しかしどうですか?私は、オーディオプレーヤーからVolumeItfを取得しようとしましたが、得た:OpenSL ES(Android)でボリュームを調整する方法は?

SL_RESULT_FEATURE_UNSUPPORTED

私は理解されているが、このメッセージは、プロファイルは、Androidにsuuportedされていないことを意味します。しかし、ボリュームコントロールにアクセスするにはどうすればいいですか?事前

答えて

8

おかげでIID_VOLUME要求にAudioPlayerオブジェクトを作成します。これを実行しないと、APIはSL_RESULT_FEATURE_UNSUPPORTEDを返します。

const SLInterfaceID ids[2] = {SL_IID_SEEK, SL_IID_VOLUME}; 
const SLboolean req[2] = {SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE}; 

(*engine)->CreateAudioPlayer(engine, &playerObject, &src, &sink, 2, ids, req); 

この回避策は簡単ではありませんが、ndk r6で私にとって役立ちます。

+4

私はそれを回避策と呼んでいません。ボリュームインタフェースはプレーヤーオブジェクトの仕様に暗黙的に記載されていないため、オブジェクトの作成時に指定する必要があります。 – IronMensan

関連する問題