2

オーディオ入力用のビジュアライザーを備えたアプリを開発しようとしています。

android.media.audiofx.Visualizerこれにはクラスを使用しています。

しかし、Visualizer オブジェクトを初期化できません。

参考: https ://github.com/felixpalmer/android-visualizer/blob/master/src/com/pheelicks/visualizer/VisualizerView.java

これが私のコードです:

private MediaPlayer mPlayer;
private byte[] mBytes;
private byte[] mFFTBytes;
private Visualizer mVisualizer;

mPlayer = MediaPlayer.create(this, R.raw.test);
        mPlayer.setLooping(false);
        mPlayer.start();

mVisualizer = new Visualizer(mPlayer.getAudioSessionId());
        mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);

    Visualizer.OnDataCaptureListener captureListener = new Visualizer.OnDataCaptureListener()
    {
        @Override
        public void onWaveFormDataCapture(Visualizer visualizer, byte[] bytes,
                int samplingRate)
        {
            System.out.println("onWaveFormDataCapture");
        }

        @Override
        public void onFftDataCapture(Visualizer visualizer, byte[] bytes,
                int samplingRate)
        {
            System.out.println("onFftDataCapture");
        }
    };

    mVisualizer.setDataCaptureListener(captureListener,
            Visualizer.getMaxCaptureRate() / 2, true, false);

    mVisualizer.setEnabled(true);
    mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
    {
        @Override
        public void onCompletion(MediaPlayer mediaPlayer)
        {
            mVisualizer.setEnabled(false);
        }
    });

これで私を助けてください。

前もって感謝します。

4

1 に答える 1

0

エラー -4 は、パラメーターとして不適切な値を渡したという意味です (http://developer.android.com/reference/android/media/audiofx/Visualizer.html#ERROR_BAD_VALUE)。

  1. Visualizer.getCaptureSizeRange()[1]が実際に 2 のべき乗であるかどうかを確認できますか? そうあるべきですが、そうでない場合は、キャプチャ サイズの範囲を 2 の累乗ではない数値に設定することになり、このエラーが発生します。

  2. mPlayer.getAudioSessionId()が戻ってくるか確認できますか?mPlayerの初期化が完全に終了していない場合など、値が正しくない場合、エラーが発生している可能性があります。

于 2012-09-03T12:52:25.470 に答える