Ich habe vor 3 Tagen mit der Programmierung für Android begonnen, und heute wollte ich etwas schwieriger mit einigen Klassen von Android Api machen. Ich finde Klasse Visualizer und beim ersten Versuch hatte ich ein Problem. Ich habe viele Beiträge in verschiedenen Foren gelesen, die die gleichen Probleme hatten: Visualizer-Engine kann nicht initialisiert werden.Android: "Visualizer Engine kann nicht initialisiert werden"
Ich habe requierd verwendet-Erlaubnis zu einer 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>
Als nächstes habe ich versucht, dieses Problem zu beheben, aber ich kann nicht. Das ist mein voller 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;
}
}
Und letztes Problem ist, dass es Illegal werfen, wenn ich will mPlayer.prepare() -Methode auszuführen.
dies ist voll LogCat Nachrichten:
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.
muss http://stackoverflow.com/a/28427213/3496570 sehen – Nepster