发挥随机声音onTouch [英] Play A Random Sound onTouch

查看:225
本文介绍了发挥随机声音onTouch的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想打一个随机的声音onTouch事件(目前的工作),但如预期的声音实际上是打了两次onTouch事件,而不是一次。我假定这是由于向上和向下onTouch事件。有什么想法?

请注意:我注释掉附加的随机声音文件,同时测试

 包com.tmapps.wiub;进口了java.util.Random;
进口com.tmapps.wiub.SoundManager;
进口android.app.Activity;
进口android.os.Bundle;
进口android.view.MotionEvent;
进口android.view.Window;
进口android.view.WindowManager;公共类音板延伸活动{
    私人SoundManager类mSoundManager;    / **当第一次创建活动调用。 * /
    @覆盖
    公共无效的onCreate(捆绑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 =新SoundManager类();
        mSoundManager.initSounds(getBaseContext());
        mSoundManager.addSound(0,R.raw.sound0);     //注释掉测试时
     // 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);    };        随机R =新的随机();
        INT X = r.nextInt(1);        开关(evt.getAction())
        {
            案例MotionEvent.ACTION_DOWN:
            mSoundManager.playSound(X);
            返回super.onTouchEvent(EVT);            案例MotionEvent.ACTION_UP:
            打破;
            默认:
            打破;
        }


解决方案

这是因为这两个ACTION_DOWN和ACTION_UP被解聘,实施code只在其中的一个

 公共布尔onTouchEvent(MotionEvent EVT)
    {
        开关(evt.getAction())
        {
            案例MotionEvent.ACTION_DOWN:
            打破;
            案例MotionEvent.ACTION_UP:
            打破;
            默认:
            打破;
        }
        返回true;
    }

I'm trying to play a random sound onTouch event (currently working), but the sound is actually played twice onTouch event instead of once as intended. I'm assuming this is due to the UP and Down onTouch event. Any thoughts?

NOTE: I commented out the additional random sound files while testing.

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;
        }

解决方案

that is because both ACTION_DOWN and ACTION_UP are firing, implement on code only on one of them

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

这篇关于发挥随机声音onTouch的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆