2017-04-13 2 views
0

J'essaye actuellement d'implémenter un visualiseur dans mon application qui obtient ses données du mix de sortie.Nouveau visualiseur (0) - Impossible d'initialiser le moteur Visualizer, erreur: -3

Mon code actuel pour initialiser le Visualiseur jusqu'à la ligne d'erreur:

private Visualizer audioOutput = null; 

public void link(){ 
    AudioTrack visualizedTrack = null; 
    final int minBufferSize = AudioTrack.getMinBufferSize(Visualizer.getMaxCaptureRate(), AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT); 
    visualizedTrack = new AudioTrack(AudioManager.STREAM_MUSIC, Visualizer.getMaxCaptureRate(), AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_8BIT, minBufferSize, AudioTrack.MODE_STREAM); 
    visualizedTrack.play(); 

    audioOutput = new Visualizer(0); 

L'erreur que je reçois de cette dernière ligne:

Caused by: java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -3 

Je suis en ce code sur une carte graphique Nvidia Shield Tablet K1 si cette information est utile. Je me rends compte que la méthode Visualizer n'a pas été la classe la mieux documentée et est connue pour causer des problèmes sur certains appareils.

Je sais que j'obtiens l'erreur -3 en raison d'une sorte de valeur de mauvais paramètre mais que ce n'est pas un 0 acceptable pour obtenir le mélange de sortie.

J'ai les autorisations appropriées RECORD_AUDIO et MODIFY_AUDIO_SETTINGS dans mon manifeste:

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

Qu'est-ce que je manque ici? J'ai été bloqué sur ceci pendant un moment et apprécierais complètement n'importe quelle aide de n'importe qui là-bas.

Répondre

0

Il semble qu'il y ait un problème de structure, mais dans tous les cas, redémarrez votre appareil après avoir poussé une construction avec ces autorisations. Ça devrait marcher!