رفتن به مطلب
  • 0

نوشتن سه دکمه بهم پیوسته


deaddreams

سوال

سلام به همه...

آقا خواهشا دستی برونید الان چهار روزه درگیر یه متدم.

سه تا Button دارم که سه تا آهنگ رو بصورت تکرار شونده پخش میکنن...میخام روی اولی که کلیک میکنم پلی بشه و دوباره روی همون کلیک میکنم متوقف بشه.

اما وقتی اولی درحال پخشه روی دومی که کلیک میکنم درجا اولی متوقف بشه و دومی پلی بشه و سومی هم همینجور. خودم این کد رو نوشتم پیغام عای چاپ به درستی میگه برنامه کار میکنه اما بعد یک بار کار کردن یعنی یک بار پلی و استاپ میشه و بار بعد پلی میشه ولی استاپ نه...اما پیغام استاپ چاپ میشه...

موضوع بعدی اینکه توی متد onClickListener وقتی دستتو از رو دکمه برمیداری اون متد اجرا میشه...میخاستم ببینم توی متد onClickListener راهی نیست که تا 

به محض اینکه تاچ کنی تابع اجرا بشه؟ خواهشا جواب بدین باور کنین این مشکلم حل بشه اپلیکیشنم تمومه...

اینم کدی که واسه سه تا کیلید نوشتم.

راستی یه چیز دیگه.من میخام یه آهنگ به صورت loop پلی بشه و ریتمش بهم نخوره...اهنگشو ساختم اما وقتی با متد MediaPlayer پخشش میکنم وقتی به آخر میرسه یکم مکس میکنه بعد loop میخوره اما با متد SoundPool این اتفاق نمیفته و سریع میره از اول پخش میشه...اهنگم سه سانیس...

 

public class MainActivity extends AppCompatActivity implements View.OnTouchListener{

    private SoundPool sp;
    private int sound;
    private int sound2;
    private int sound3;
    boolean r=false;
    boolean r1=false;
    boolean r2=false;
    Button btn,btn2,btn3;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sp=new SoundPool(0b1, AudioManager.STREAM_MUSIC,0);
        sound  = sp.load(getApplicationContext(), R.raw.audacity, 1);
        sound2 = sp.load(getApplicationContext(), R.raw.ttt, 1);
        sound3 = sp.load(getApplicationContext(), R.raw.laser, 1);
        btn=(Button)findViewById(R.id.btn);
        btn2=(Button)findViewById(R.id.btn2);
        btn3=(Button)findViewById(R.id.btn3);
        btn.setOnTouchListener(this);
        btn2.setOnTouchListener(this);
        btn3.setOnTouchListener(this);


    }
    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {


              if(motionEvent.getAction()==MotionEvent.ACTION_DOWN) {
                  if(view.getId()==R.id.btn)
                  {
                      if(!r) {
                          r1=r;
                          r2=r;
                          sp.play(sound, 1.0f, 1.0f, 0, 5, 1.0f);
                          Toast.makeText(this, "btn play", Toast.LENGTH_SHORT).show();
                          r=true;
                      }else{
                          sp.stop(sound);
                         Toast.makeText(this, "btn Stop", Toast.LENGTH_SHORT).show();
                          r=false;
                      }

                  }
                  if(view.getId()==R.id.btn2)
                  {
                      if(!r1) {
                          r=r1;
                          r2=r1;
                          sp.play(sound2, 1.0f, 1.0f, 0, 5, 1.0f);
                          Toast.makeText(this, "btn2 Play", Toast.LENGTH_SHORT).show();
                          r1=true;
                      }else{
                          sp.stop(sound2);
                          Toast.makeText(this, "bnt2 Stop", Toast.LENGTH_SHORT).show();
                          r1=false;
                      }
                  }
                  if(view.getId()==R.id.btn3)
                  {
                      if(!r2) {
                          r=r2;
                          r1=r2;
                          sp.play(sound3, 1.0f, 1.0f, 0, 5, 1.0f);
                          Toast.makeText(this, "btn3 Play", Toast.LENGTH_SHORT).show();
                          r2=true;
                      }else{
                          sp.stop(sound3);
                          Toast.makeText(this, "btn3 Stop", Toast.LENGTH_SHORT).show();
                          r2=false;
                      }
                  }

              }

        return true;
    }

    }
لینک ارسال
به اشتراک گذاری در سایت های دیگر

1 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...