2017-02-14 2 views
1

Après environ 10-15 photos, le bruit de l'obturateur cesse de fonctionner et ne revient que lorsque vous redémarrez l'application. Cette erreur est en studio android:Arrêt des bruits d'obturateur

02-10 10:20:03.626 491-13501/? E/AudioFlinger: no more track names 
available 02-10 10:20:03.626 491-13501/? E/AudioFlinger: 
createTrack_l() initCheck failed -12; no control block? 02-10 
10:20:03.626 31837-31837/ E/AudioTrack: AudioFlinger could not create 
track, status: -12 02-10 10:20:03.627 31837-31837/ E/SoundPool: Error 
creating AudioTrack 

Voici le code:

Thread myThread = new Thread(new Runnable() { 
    @Override 
    public void run() { 
     MediaActionSound sound = new MediaActionSound(); 
     sound.play(MediaActionSound.SHUTTER_CLICK); 
    } 
} 
+0

peut u s'il vous plaît fournir l'extrait de code complet – bakriOnFire

+0

Discussion MyThread = new Thread (new Runnable() { @Override public void run() { MediaActionSound son = new MediaActionSound(); sound.play (MediaActionSound.SHUTTER_CLICK); } }); myThread.start(); –

+0

vous ouvrez plusieurs objets sans appeler la version .. voir si cela aide http://stackoverflow.com/questions/11964623/audioflinger-could-not-create-track-status-12 – bakriOnFire

Répondre

0

Dans mon application, j'utilise ce code. J'ai aussi eu un problème similaire (le son n'a pas été joué à la fin après plusieurs jeux). Mais après avoir réutilisé (au lieu de re-créer) le problème de MediaActionSound a disparu. PS: le son est lu de manière asynchrone, vous n'avez donc pas besoin de créer de thread.

static private MediaActionSound sound = null; 

static public void playShutterSound(){ 
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) { 
     if(sound == null) { 
      sound = new MediaActionSound(); 
     } 
     sound.play(MediaActionSound.SHUTTER_CLICK); 
    } 
}