SoundPool hängt 5 Sekunden (leer) dran

  • Hallo Leute,


    ich hab da mal wieder eine Frage:


    und zwar versuche ich bei bestimmten Events einen "Klick Ton" abzuspielen. Dazu verwende ich SoundPool.
    Das klappt soweit auch schon, außer wenn dieser Klick Ton zwei mal direkt hintereinander abgespielt werden soll.
    Der erste klingt normal, der zweite viel lauter und ganz anders. Zufällig habe ich bemerkt, dass nach der Ausgabe
    des ersten Tones der Lautsprecher nicht direkt wieder abschaltet sonder erst nach ca. 5 Sekunden. Man hört ein
    ganz leises Rauschen und nach 5 Sekunden ist es aus. Dann klingt auch der erste Ton wieder normal. An der Datei
    (ogg File) wird es wohl nicht liegen, die ist 0,2 Sekunden lang.


    Habt Ihr eine Idee woran das liegen kann?


  • soundPool.play(soundId, 1, 1, 0, 0, 0) ;

    Ich bin mir nicht sicher, dass das richtig sein kann.


    Zitat

    public final int play (int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)
    […]The playback rate allows the application to vary the playback rate (pitch) of the sound. A value of 1.0 means play back at the original frequency. A value of 2.0 means play back twice as fast, and a value of 0.5 means playback at half speed.
    […]
    rate playback rate (1.0 = normal playback, range 0.5 to 2.0)

    Da Deine Rate bei 0 liegt und damit außerhalb des Ranges ist, ist an Resultaten eigentlich alles erlaubt.
    Immerhin versuchst Du, den Titel mit 0% der Geschwindigkeit wiederzugeben.
    Wenn der den Titel normal abspielt, weil er 0 für Blödsinn hält, die Abspielzeit aber auf das definierte Minimum von von 50% setzt, muss er die halbe Zeit ja mit irgendwas auffüllen – also offenbar mit nix.


    Setz die Rate mal auf 1.
    Und es ist immer hilfreich, die Dokumentationen zu lesen. ;)

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

  • Hallo nochmal,


    danke für den Hinweis. Die letzte Null war ursprünglich auch eine eins. Das hab ich wohl beim testen verspielt.
    Will sagen, auch mit soundPool.play(soundId, 1, 1, 0, 0, 1) ; passiert das gleiche.


    Jetzt bin ich aber zu der Erkenntnis gekommen, dass es am Gerät liegen muss. Dabei handelt es sich um einen Barcodescanner mit Android 4.4.2 . Auf anderen Androidgeräten konnte ich das Verhalten nicht reproduzieren.


    Hmm....

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!