| |||||||
Das Thema "SoundPool spielt Ton zu oft überreinander ab" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 06.07.2011
Beiträge: 71
Abgegebene Danke: 14
Erhielt 7 Danke für 7 Beiträge
| ich hab ein Problem mit dem Soundpool, ich will einen Ton abspielen sobald der Wert des Lichtsensors unter einen bestimmten Wert fällt. Das Problem dabei ist, dass der Wert sehr oft schwankt und somit der Ton öfters übereinander abgespielt wird. Code: SensorEventListener lightSensorEventListener
= new SensorEventListener(){
..
public void onSensorChanged(SensorEvent arg0) {
..
if(start == true){
if(arg0.values[0] < Threshold){
float actualVolume = (float) audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
float maxVolume = (float) audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float volume = actualVolume / maxVolume;
// Is the sound loaded already?
if (loaded) {
soundPool.play(soundID, volume, volume, 1, 0, 1f);
Log.e("Test", "Played sound");
}
}
}else{
}
}}; Kann ich beim SoundPool irgendwie abfragen, ob zur zeit etwas gespielt wird und darauf reagieren? Oder sollte man das irgdendwie anders lösen? Danke euch! Gruß Soma |
| | |
| | #2 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 14.12.2010
Beiträge: 128
Abgegebene Danke: 25
Erhielt 5 Danke für 4 Beiträge
|
Wenn der Sound gestartet wird, merkst du dir die aktuelle Zeit. Wird der Sound erneut versucht zu starten, testest du ob die Laenge des Sounds vergangen ist, seit der sound das letzte mal gestartet hat. Vorraussetzung hierfuer ist, dass du die Laenge des Soundes hast. |
| | |
| | #3 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 06.07.2011
Beiträge: 71
Abgegebene Danke: 14
Erhielt 7 Danke für 7 Beiträge
|
Danke, aber hab es jetzt mit nem MediaPlayer gelöst: Code: boolean completed = true;
MediaPlayer mMediaPlayer;
@Override
public void onCreate(Bundle savedInstanceState) {
...
//MEDIAPLAYER
mMediaPlayer = MediaPlayer.create(this, R.raw.alarm_1);
mMediaPlayer.setLooping(false);
mMediaPlayer.setOnCompletionListener(complete);
}
//Listener wenn Song vorbei ;)
private OnCompletionListener complete = new OnCompletionListener(){
public void onCompletion(MediaPlayer arg0){
completed = true;
}
};
//z.b. beim Button event
private OnClickListener btListener = new OnClickListener()
{
public void onClick(View v){
if(completed){
mMediaPlayer.start();
completed = false;
}
}
}; |
| | |
| | #4 (permalink) |
| Android-Hilfe.de Mitglied Registriert seit: 14.12.2010
Beiträge: 128
Abgegebene Danke: 25
Erhielt 5 Danke für 4 Beiträge
|
Jop, hier hast du zur erleichterung den onCompletionListener. Du brauchst uebrigens keine variable "completed", der MediaPlayer kommt bereits mit einer Methode "isPlaying()", die du einsetzen kannst. |
| | |
| Folgender Benutzer bedankt sich bei computer_freak für diesen Beitrag: | soma-web (23.07.2011) |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| meldet sich oft ab | FredMücke | Samsung Galaxy Ace (S5830) Forum | 2 | 19.06.2011 08:29 |
| Music Player spielt verückt, und SMS-Ton geht nicht? | Keram | Samsung Galaxy 551 (I5510) Forum | 1 | 12.06.2011 10:44 |
| Galaxy S hängt oft.... | Andy K. | Samsung Galaxy S (I9000) Forum | 13 | 07.01.2011 18:13 |
| facebook signal ton spielt MP3 ab | sodah | HTC Desire Forum | 6 | 28.12.2010 17:57 |