2012-04-11 10 views
0

Ich versuche, ein zufälliges Sound onTouch Ereignis (zur Zeit arbeiten), aber der Sound wird eigentlich zweimal auf Touch-Ereignis statt einmal wie beabsichtigt gespielt. Ich gehe davon aus, dass dies auf das UP und Down onTouch Event zurückzuführen ist. Irgendwelche Gedanken?Spielen Sie einen zufälligen Ton onTouch

HINWEIS: Ich habe die zusätzlichen zufälligen Sounddateien beim Testen auskommentiert.

package com.tmapps.wiub; 

import java.util.Random; 
import com.tmapps.wiub.SoundManager; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.view.Window; 
import android.view.WindowManager; 

public class Soundboard extends Activity { 
    private SoundManager mSoundManager; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // FULLSCREEN CODE 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
           WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     setContentView(R.layout.main); 

     mSoundManager = new SoundManager(); 
     mSoundManager.initSounds(getBaseContext()); 
     mSoundManager.addSound(0, R.raw.sound0); 

    // COMMENTED OUT WHILE TESTING 
    // mSoundManager.addSound(1, R.raw.sound1); 
    // mSoundManager.addSound(2, R.raw.sound2); 
    // mSoundManager.addSound(3, R.raw.sound3); 
    // mSoundManager.addSound(4, R.raw.sound4); 
    // mSoundManager.addSound(5, R.raw.sound5); 
    // mSoundManager.addSound(6, R.raw.sound6); 
    // mSoundManager.addSound(7, R.raw.sound7); 
    // mSoundManager.addSound(8, R.raw.sound8); 
    // mSoundManager.addSound(9, R.raw.sound9); 

    }; 

     Random r = new Random(); 
     int x = r.nextInt(1); 

     switch (evt.getAction()) 
     { 
      case MotionEvent.ACTION_DOWN: 
      mSoundManager.playSound(x); 
      return super.onTouchEvent(evt); 

      case MotionEvent.ACTION_UP: 
      break; 
      default: 
      break; 
     } 

Antwort

0

, die da sowohl ACTION_DOWN und ACTION_UP feuern, nur auf einem von ihnen auf Code implementieren

public boolean onTouchEvent(MotionEvent evt) 
    { 
     switch (evt.getAction()) 
     { 
      case MotionEvent.ACTION_DOWN: 
      break; 
      case MotionEvent.ACTION_UP: 
      break; 
      default: 
      break; 
     } 
     return true; 
    } 
+0

Danke für die Hilfe kishu27. Ich habe den onTouch-Code aktualisiert, wie Sie es vorgeschlagen haben, und jetzt funktioniert alles richtig. – n00bdev

+0

du bist willkommen kumpel .. froh, dass es für dich ausgearbeitet hat – kishu27

+0

Haben Sie irgendwelche Gedanken darüber, wie ich allmählich die Lautstärke über X Sekunden mit AudioManager erhöhen könnte? – n00bdev

Verwandte Themen