2010-11-29 6 views
4

Ich bin ziemlich neu für Android so sei sanft!Android SoundPool schneiden Sound-Datei kurz

Ich habe den folgenden Code, der (glaube ich) einfach "Entwicklershort" spielen soll.

public constructor(Context context){ 
    this.context = context; 
    soundPool = new SoundPool(2, AudioManager.STREAM_MUSIC,0); 
    soundPoolMap = new HashMap<Integer, Integer>(); 
    soundPoolMap.put(1, soundPool.load(this.context, 
     R.raw.developersshort, 1));   
} 

public void run() { 
    soundPool.play(soundPoolMap.get(1), 1, 1, 1, 0, 1f); 
} 

[Um zu versuchen, um herauszufinden, was los ist, spielt es derzeit, dass Remix von Steve Ballmer „Entwickler“ immer wieder schreien! Die Sound-Datei ist ~ 90KB Größe.]

Wenn ich meine App im Emulator ausführen, und drücken Sie die Taste, um den Sound auszulösen, es sagt "Entwickler Entwickler ..." etc etc, wie ich es erwarten würde.

Allerdings, wenn ich es auf meinem Telefon bereitstellen, alles höre ich etwas wie "vvelop" einmal, und dann hört der Ton auf.

Ich habe keine Ahnung was los ist, irgendwelche Ideen?

Vielen Dank!

Antwort

1

Ist Ihre Audiodatei eine OGG-Datei? Es scheint, als hätten andere Formate Probleme mit SoundPool. Wenn das nicht funktioniert, können Sie es mit einer kleineren Audiodatei testen. Ich hatte einige Störungen, als meine Audiodatei über 60kb war.

0

60kb auf Speicher, oder 2mb auf dem Haufen, decodiert, als reine Welle Könnte die Grenzen sein, ja. stellen Sie sicher, dass Sie nichts länger als eine Sekunde oder etwas ähnliches verwenden.

Soundpool benötigt wirklich kleine Dateien. Lesen Sie die SDK-Seite.

1

Haben Sie versucht, die Sounddatei neu zu resampeln ???

Davor wird meine Audiodatei geschnitten. Aber ich habe das m4a von 44KHz auf 22KHz konvertiert und resample jetzt und es funktioniert, ohne zu schneiden. Beziehen Sie sich darauf: and again about memory issues with SoundPool

So versuchen Sie gleich.

Ich hoffe, es wird für Sie arbeiten.