2017-07-13 5 views
-1

Ich habe viele Fragen zu Soundpool gestellt, aber alle behaupten, dass es überhaupt nicht funktioniert. Für mich ist der Fall anders.Soundpool funktioniert nicht und einige Geräte

ich ein Soundpool-Objekt deklariert haben und ids verfolgen als

public static SoundPool sp; 
public static int comeCloseID, goFurtherID, blinkID, smileID, rotateLeftID, rotateRightID; 

folgen dann ich ein initSounds erstellt haben Funktion den Sound Pool

public static void initSounds() 
{ 
    sp = new SoundPool.Builder().build(); 
    comeCloseID = sp.load(mContext, R.raw.comeclose,1); 
    goFurtherID = sp.load(mContext, R.raw.gofurther,1); 
    blinkID = sp.load(mContext, R.raw.blink, 1); 
    smileID = sp.load(mContext, R.raw.smile, 1); 
    rotateLeftID = sp.load(mContext, R.raw.rotateleft, 1); 
    rotateRightID = sp.load(mContext, R.raw.rotateright, 1); 

    sp.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() { 
     @Override 
     public void onLoadComplete(SoundPool soundPool, int sampleId, 
            int status) { 
      loaded = true; 
     } 
    }); 
} 

dann ich die Töne paly zu initialisieren, wie folgt:

GlobalParams.sp.play(GlobalParams.comeCloseID, 1, 1, 1, 0, 1); 

etc ...

Die Audiodateien funktionieren gut mit meinem Samsung Note5-Gerät. aber wenn ich sie auf einem J1 Gerät oder einem Lenovo Gerät versuche, werden die Töne nicht spielen. (Thogh ich kann den Wert von geladen, um wahr zu sein).

was habe ich verpasst? und warum das Audio nicht spielt?

Wissen, dass ich verschiedene Formate für das Audio (WAV, MP3 ....) versucht habe, aber ID hat den Fall nicht gelöst.

Antwort

0

Versuchen setMaxStreams(5) Erhöhung 5 zu sagen, Sie haben es auf dem Standard 1 gesetzt:

AudioAttributes attributes = new AudioAttributes.Builder() 
        .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) 
        .setFlags(AudioAttributes.FLAG_AUDIBILITY_ENFORCED) 
        .setUsage(AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_INSTANT) 
        .build(); 

sp = new SoundPool.Builder() 
.setMaxStreams(5) 
.setAudioAttributes(attributes) 
.build(); 
Verwandte Themen