Soundeffekte mit SoundPool richtig abspielen

  • Hallo an alle,


    ich habe ein kleines Problem mit dem SoundPool. Und zwar möchte ich soundeffekte, z.B. einen pistolenschuß, abspielen, sobald der nutzer den bildschirm berührt. das problem ist, das wenn der sound abgespielt wird, nicht unterbrochen werden soll, sobald erneut auf den bildschirm. ich bin bis jetzt so weit:




    Beim SoundPool gibt es ja keine isplaying()-methode wie beim Mediaplayer. daher weiß ich nicht genau wie ich das checken soll. :-/


    Und noch eine Frage: wie bekommt man das abspielen von soundeffekten, solange der bildschirm gedrückt wird.? ich habe das mit ACTION_MOVE ausprobiert. Komischerweise wenn ich den finger gedrückt halte und auf dem bildschirm bewege, wird ein eckliges knattern wiedergegen solange ich meinen finger bewege. liegt das daran das solange ich meinen finger auf dem bildschirm bewege auch dementsrpechend oft der sound wiedergegeben wird?


    Danke im Voraus für die Antworten und Ratschläge. :)

  • Naja, für solche Abfragen gibt es ja die Variablen vom Typ BOOLEAN.
    Sprich:

    Java
    case MotionEvent.ACTION_DOWN:
    	if(!this.soundPoolIsPlaying)
    	{
    		this.soundPoolIsPlaying = true;
    		sp.play(bum, 1, 1, 1, 0, 1);
    	}
    	break;


    Und am Ende des Sounds setzt du soundPoolIsPlaying halt wieder auf false.
    Problematisch finde ich daran nur, dass SoundPool nicht für so etwas gedacht scheint.
    Offenbar soll der Pool hauptsächlich für Spiele gedacht sein und die Soundaktionen sollen programmatisch gesteuert werden. Also komplett vom User Input unabhängig.


    In deinem Fall würde ich, so du mit dem SoundPool arbeiten möchtest, einen Timer auf die Dauer der Spieldauer des Soundfiles setzen und nachdem das Ding gefeuert hat this.soundPoolIsPlaying auf false setzen.
    Ich weiß leider nicht, welche Möglichkeiten Android für die gesteuerte Soundausgabe noch bietet.
    (Gut, OpenAL, aber das hat was von Kanonen auf Spatzen.)

    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!«

Jetzt mitmachen!

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