آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

سوالی در رابطه با player

behnam2000  11 سال پیش  11 سال پیش
0 0

سلام دوستان.من یک imageveiw بصورت زیر تعریف کرده ام:

 ImageView img1 = (ImageView) findViewById(R.id.img1); // نام عکس ست شده: image1

 حال می خوام وقتی  بر روی این imageveiw کلیک شد دو کار زیر انجام بشه:

 img1.setImageResource(R.drawable.image2);
player = MediaPlayer.create(Activity1.this, R.raw.abc); //abc:نمونه ای از یک فایل صوتی حدااکثر 6 ثانیه ای
player.setVolume(100, 100); player.start();

حال تنها مشکلی که دارم این هستش که نمیدونم از چه کدی بایستی استفاده کنم تا به محض تموم شدن پخش فایل صوتی کد زیر اجرا بشه:

 img1.setImageResource(R.drawable.image1);

 در واقع بصورت خلاصه هدفم ام این هستش که می خوام با کلیک شدن img1 هم image1 به image2 تبدیل بشه و هم فایل صوتی آغاز بشه و درست به محض تموم شدن پخش image2 به image1 برگرده.دو روش به نظرم رسید اما به جواب کارآمد و دقیقی نرسیدم:

 روش 1(کمی پیچیده و کمی نادقیق-مشابه روش سرکشی)

 img1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                
                img1.setImageResource(R.drawable.image2);
player = MediaPlayer.create(Lesson1.this, R.raw.abc);
player.setVolume(100, 100); player.start(); for (int i = 1; i <= 6; i++) { final Handler handler = new Handler(); handler.post(new Runnable() { @Override public void run() { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } if ( !(player.isPlaying())) img1.setImageResource(R.drawable.image1); } }); } } });

روش دوم( اصلا کار نکرد)

 img1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                img1.setImageResource(R.drawable.image2);
player = MediaPlayer.create(Activity1.this, R.raw.abc);
player.setVolume(100, 100); player.start(); while (player.isPlaying()); img1.setImageResource(R.drawable.image1); } });

 

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
+4 0

 از listener زیر استفاده کن :

player.setOnCompletionListener(new OnCompletionListener() {

            public void onCompletion(MediaPlayer player) {
                // اینجا عکس رو عوض کن
            }
        });
+1 0
خیلی ممنون.به راحتی پیاده سازی شد. منو باش که داشتم از خودم یک سری کدهای پیچیده در می آوردم. (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .