1

これらの問題を解決するために何ができるのか、私にはわかりません。MediaPlayer + Equalizer アプリを実装しています。MediaPlayer は正常に動作しますが、イコライザーに問題があります。一部のメソッドが機能しません。

public class MainActivity extends Activity {

    private MediaPlayer mediaPlayer;
    private Equalizer equalizer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mediaPlayer = new MediaPlayer();
        try {
            mediaPlayer.setDataSource("/sdcard/titanium.mp3");
            mediaPlayer.prepare();
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        mediaPlayer.start();

        equalizer = new Equalizer(0, 0);
        equalizer.setEnabled(true);

        int minEQLevel = equalizer.getBandLevelRange()[0];
        int maxEQLevel = equalizer.getBandLevelRange()[1];

        Log.i("kkk", "Valor de minEQLevel" + minEQLevel);
        Log.i("kkk", "Valor de maxEQLevel" + maxEQLevel);

        short numberOfBand = equalizer.getNumberOfBands();
        Log.i("kkk", "Número de bandas = "+numberOfBand);

            /******From here to down the methods don't work *****/

        try {
                    short band = equalizer.getBand(Integer.valueOf(50000));
            Log.i("kkk", "getBand() = "+band);
            short band = 0;
            //int menor = equalizer.getBandFreqRange(band)[0];
            //int maior = equalizer.getBandFreqRange(band)[1];
            //Log.i("kkk", "Menor = "+menor);
            //Log.i("kkk", "Maior = "+maior);
        } catch (IllegalArgumentException e) {
            Log.i("kkk", "Bad parameter value");
        } catch (UnsupportedOperationException e) {
            Log.i("kkk", "get parameter() rejected");
        } catch (IllegalStateException e) {
            Log.i("kkk", "get parameter() called in wrong state");
        }


    }

}

次のメソッドは正常に機能します。 getBandLevelRange(); getNumberOfBands();

次の方法は機能しません。エラー メッセージが表示されます: パラメーター値が正しくありません。getBand(); getBandFreqRange(); この最後はコメントされていますが、そうでない場合も動作しません。

getBand() メソッドでは、50000、1000000 などのいくつかのパラメーター値を既に試しました。ライブラリ AudioFx の例でサポートされている周波数。

これらの方法が機能しないのはなぜですか??? 何かを設定することを許しましたか???

わかりました。

4

0 に答える 0