بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
صدای کلیکی که بعد از کلیک شدن شنیده می شه نیازه بستنش؟
سلام دوستام
من تو برنامم بعد از on click یک bottun کلاس mediaplayeer تعریف کردم که بعد از کلیک این مدیاپلیر با صدایی که تو پوشه raw دارم start بشه. (نمیدونم که روش استانداردش همینه؟)
حالا می خوام بدونم این start کردن مدیا پلیر نیاز به بستن هم داره یا نه؟
آیا اصلا روشش همینه؟ چون من اگه صدتا دکمه داشته باشم باید برای همشون start صدای کلیک بذارم؟
برای این سوال 1 پاسخ وجود دارد.
مشاهده پاسخ صحیح
پاسخ به سوال
FSR
9 سال پیش
+4
0
پاسخ صحیح
سلام
اگه صدا ها در حد 1 ثانیه باشن نیازی نیست ببندیشون چون به محض کلیک و پخش صدا خودشون بسته میشن.
بهترین راه برای کلیک صدا دار اینکه از متد OnTouchListener استفاده کنی و لازم هم نیست برای همه یه متد OnTouchListener تعریف کنی! شما میتونید یک OnTouchListener تعریف کنید و برای هر کلیک این متد رو صدا کنید.
اینم یه مثال برای فهم بهتر:
MediaPlayer musicBtn = MediaPlayer.create(G.context, R.raw.click2);
OnTouchListener onTouchListener = new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
musicBtn.start();
return false;
}
};
btn0.setOnTouchListener(onTouchListener);
btn1.setOnTouchListener(onTouchListener);
btn2.setOnTouchListener(onTouchListener);
btn3.setOnTouchListener(onTouchListener);
btn4.setOnTouchListener(onTouchListener);
btn5.setOnTouchListener(onTouchListener);
btn6.setOnTouchListener(onTouchListener);
btn7.setOnTouchListener(onTouchListener);
btn8.setOnTouchListener(onTouchListener);
btn9.setOnTouchListener(onTouchListener);
من الان تست کردم ، 2 بار پخش میشه . کلیک طولانی انجام بدید تا این اتفاق بیفته . وقتی کلیک رو روی دکمه نگه میدارید صدا پخش میشه بعد از دو ثانیه ول کنید ، دوباره پخش میشه . البته کسی اینطوری کلیک نمیکنه ولی ایراده دیگه ( من خودم بارها شده روی یک دکمه کلیک کردم ولی زود پشیمون شدم و دکمه رو ول نکردم و همینطور دکمه کلیک شده رو درگ کردم خارج دکمه تا کلیک اتفاق نیفته ، اینجاست که Down یک بار و Move چندین بار اجرا میشه ) . کلیک یک دکمه به معنی Up کردن روی اونه نه چیز دیگه ( Down یا Move ) ، پس بهتره که صدا در Up پخش بشه . (9 سال پیش)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .