title: Android : "cannot initialize visualizer engine"
body: <p>I've started programming for Android 3 days ago, and today I wanted to do something more difficult using some classes from android Api.
  I find class Visualizer and at first attemp I had a problem. I read many post on different forums people who had the same problems : cannot initialize visualizer engine.</p>
  
  <p>I added requierd uses-permission to a Manifest.xml</p>
  
  <pre><code>&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="org.program.fourier"
      android:versionCode="1"
      android:versionName="1.0" &gt;
  
      &lt;uses-permission android:name="android.permission.RECORD_AUDIO" /&gt;
      &lt;uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/&gt;
  
      &lt;uses-sdk
          android:minSdkVersion="10"
          android:targetSdkVersion="15" /&gt;
  
      &lt;application
          android:icon="@drawable/ic_launcher"
          android:label="@string/app_name"
          android:theme="@style/AppTheme" &gt;
  
          &lt;activity
              android:name=".mainFFT"
              android:label="@string/title_activity_main_fft" &gt;
              &lt;intent-filter&gt;
                  &lt;action android:name="android.intent.action.MAIN" /&gt;
  
                  &lt;category android:name="android.intent.category.LAUNCHER" /&gt;
              &lt;/intent-filter&gt;
          &lt;/activity&gt;
      &lt;/application&gt;
  
  &lt;/manifest&gt;
  </code></pre>
  
  <p>Next I've tried to fix this problem but I can't.
  This is my full code:</p>
  
  <pre><code>package org.program.fourier;
  
  import android.os.Bundle;
  import android.app.Activity;
  import android.util.Log;
  import android.view.Menu;
  import android.view.MenuItem;
  import android.support.v4.app.NavUtils;
  
  import android.media.audiofx.Visualizer;
  import android.media.audiofx.Visualizer.OnDataCaptureListener;
  import android.media.MediaPlayer;
  import android.media.AudioManager;
  
  public class mainFFT extends Activity {
  
      MediaPlayer mPlayer;
      Visualizer vis;
  
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main_fft);
  
          mPlayer = MediaPlayer.create(this, R.raw.sight);
          mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
  
          try
          {
              mPlayer.prepare();
          }
          catch(Exception ex){ Log.w("ExCePtIoN", ex+""); }
  
          try
          {
              vis = new Visualizer(mPlayer.getAudioSessionId());
          //vis.setDataCaptureListener(this, 20, true, true);
          }
          catch(Exception ex){ Log.w("ExCePtIoN", ex+""); }
  
  
          mPlayer.start();
      }
  
  
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          getMenuInflater().inflate(R.menu.main_fft, menu);
          return true;
      }
  
  
  }
  </code></pre>
  
  <p>And last problem is that it throw IllegalStateException when I want to execute mPlayer.prepare() method.</p>
  
  <p>this is full LogCat messages:</p>
  
  <pre><code>07-06 18:33:17.141: E/Trace(833): error opening trace file: No such file or directory (2)
  07-06 18:33:17.591: E/MediaPlayer(833): prepareAsync called in state 8
  07-06 18:33:17.591: W/ExCePtIoN(833): java.lang.IllegalStateException
  07-06 18:33:17.621: E/AudioEffect(833): set(): AudioFlinger could not create effect, status: -22
  07-06 18:33:17.621: E/visualizers-JNI(833): Visualizer initCheck failed -4
  07-06 18:33:17.621: E/Visualizer-JAVA(833): Error code -4 when initializing Visualizer.
  07-06 18:33:17.621: W/ExCePtIoN(833): java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -4
  07-06 18:33:18.482: I/Choreographer(833): Skipped 337 frames!  The application may be doing too much work on its main thread.
  07-06 18:33:18.551: D/gralloc_goldfish(833): Emulator without GPU emulation detected.
  </code></pre>