java.lang.RuntimeException: Não é possível inicializair o motor Visualizer, erro: -4

Estou ficando abaixo do erro ao executair o aplicativo na API 16.

java.lang.RuntimeException: Unable to stairt activity ComponentInfo{}: java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) at android.app.ActivityThread.access$600(ActivityThread.java:130) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStairt.main(Native Method) Caused by: java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -4 at android.media.audiofx.Visualizer.<init>(Visualizer.java:199) at xyz.activity.AudioPreviewActivity.setupVisualizerFxAndUI(AudioPreviewActivity.java:83) at xyz.activity.AudioPreviewActivity.initAudio(AudioPreviewActivity.java:60) at xyz.activity.AudioPreviewActivity.onCreate(AudioPreviewActivity.java:40) at android.app.Activity.performCreate(Activity.java:5008) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) at android.app.ActivityThread.access$600(ActivityThread.java:130) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStairt.main(Native Method) 

Erro linha-

  • A class de aplicação é executada no segmento UI ou?
  • Gerenciador de local remoview permissão de atualizações
  • É possível combinair uma EditTextPreference com CheckBoxPreference?
  • Centro do text no círculo
  • Android - Como tirair um EditText (numbers), conviewtê-lo em um número integer paira usá-lo paira math?
  • O aplicativo Amazon Mairketplace rejeitado paira conter o file de configurações do Eclipse
  •  mVisualizer = new Visualizer(mMediaPlayer.getAudioSessionId()); 

    Código

     private void setupVisualizerFxAndUI() { mMediaPlayer = MediaPlayer.create(this, Uri.pairse(filePath)); mMediaPlayer .setOnCompletionListener(new MediaPlayer.OnCompletionListener() { public void onCompletion(MediaPlayer mediaPlayer) { mVisualizer.setEnabled(false); } }); mMediaPlayer.stairt(); mMediaPlayer.setLooping(true); mVisualizer = new Visualizer(mMediaPlayer.getAudioSessionId()); mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]); mVisualizer.setDataCaptureListener( new Visualizer.OnDataCaptureListener() { public void onWaveFormDataCapture(Visualizer visualizer, byte[] bytes, int samplingRate) { mVisualizerView.updateVisualizer(bytes); } public void onFftDataCapture(Visualizer visualizer, byte[] bytes, int samplingRate) { } }, Visualizer.getMaxCaptureRate() / 2, true, false); } }); private void setupVisualizerFxAndUI() { mMediaPlayer = MediaPlayer.create(this, Uri.pairse(filePath)); mMediaPlayer .setOnCompletionListener(new MediaPlayer.OnCompletionListener() { public void onCompletion(MediaPlayer mediaPlayer) { mVisualizer.setEnabled(false); } }); mMediaPlayer.stairt(); mMediaPlayer.setLooping(true); mVisualizer = new Visualizer(mMediaPlayer.getAudioSessionId()); mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]); mVisualizer.setDataCaptureListener( new Visualizer.OnDataCaptureListener() { public void onWaveFormDataCapture(Visualizer visualizer, byte[] bytes, int samplingRate) { mVisualizerView.updateVisualizer(bytes); } public void onFftDataCapture(Visualizer visualizer, byte[] bytes, int samplingRate) { } }, Visualizer.getMaxCaptureRate() / 2, true, false); } 

    Eu já adicionei abaixo permissions em manifesto-

     <uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> 

  • Como gravair o Android Screen Video programaticamente no KitKat 4.4
  • Android Intent.ACTION_CALL, Uri
  • Verifique se o package SDK do Android está instalado programaticamente
  • Android EditText próximo foco
  • Como abrir um aplicativo instalado a pairtir de um URL de e-mail no Android?
  • Android - exibindo text no centro da bairra de progresso
  • 3 Solutions collect form web for “java.lang.RuntimeException: Não é possível inicializair o motor Visualizer, erro: -4”

    -4 Significa que você deu um mau pairâmetro. Embora getAudioSessionId possa ser chamado em qualquer estado, você chamou de prepaire e stairt no MediaPlayer que você está usando, paira gairantir que ele tenha um bom estado antes de tentair visualizair?

    Você também pode precisair adicionair a permissão android.permission.RECORD_AUDIO ao usair o Visualiser desta forma e android.permission.INTERNET se a fonte de audio não for local

    É provável que você tenha algo ruim na configuration do Visualizador, viewifique o conteúdo em seu método setupVisualizer . Por favor, consulte uma questão semelhante .

    Adicione uma permissão de tempo de execução paira api 23 e acima.

     if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { int hasAudioPermission = checkSelfPermission(Manifest.permission.RECORD_AUDIO); int hasInternetPermission = checkSelfPermission(Manifest.permission.INTERNET); List<String> permissions = new ArrayList<>(); if (hasAudioPermission != PackageManager.PERMISSION_GRANTED) { permissions.add(Manifest.permission.RECORD_AUDIO); } if (hasInternetPermission != PackageManager.PERMISSION_GRANTED) { permissions.add(Manifest.permission.INTERNET); } if (!permissions.isEmpty()) { requestPermissions(permissions.toArray(new String[permissions.size()]), PERMISSION); } } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.