I started programming for Android 3 days ago, and today I wanted to do something more complex using some classes from android Api. I find the Visualizer class, and at first glance I had a problem. I read a lot of posts on different forums of people who had the same problems: it is impossible to initialize the visualizer engine.
I added requierd uses-permission for Manifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.program.fourier" android:versionCode="1" android:versionName="1.0" > <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".mainFFT" android:label="@string/title_activity_main_fft" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Next, I tried to fix this problem, but I can not. This is my complete 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());
And the last problem is that it throws an IllegalStateException when I want to execute the mPlayer.prepare () method.
these are the full logcat messages:
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.
android initialization visualizer
Karol Cudzich
source share