2015-05-12 5 views
0

Когда вы нажимаете на две кнопки, вы слышите два звука. Как я могу остановить первый звук и воспроизвести второй звук или когда я играю первый звук, что второй звук останавливается? Как я могу создать это? Вот мой Media PlayerAndroid MediaPlayer не останавливается нажатием другой кнопки

final LinearLayout lm = (LinearLayout) findViewById(R.id.linearMain); 
         LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
         LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
         JSONArray songs = (JSONArray) response.getJSONArray("songs"); 
         for (int i = 0; i < songs.length(); i++) 
         { 
          // Create LinearLayout 
          audio = songs.getJSONObject(i).getString(TAG_AUDIO) ; 
          String chanson = songs.getJSONObject(i).getString("title") ; 
          String duration = songs.getJSONObject(i).getString(TAG_DURATION) ; 

          LinearLayout ll = new LinearLayout(getApplicationContext()); 
          ll.setOrientation(LinearLayout.HORIZONTAL); 

          final TextView txtchanson = new TextView(getApplicationContext()); 
          txtchanson.setText(chanson); 
          txtchanson.setPadding(10, 0, 10, 0); 
          TextView txtduration = new TextView(getApplicationContext()); 
          txtduration.setText(duration); 

          final Button btn = new Button(getApplicationContext()); 
          final MediaPlayer mp = new MediaPlayer(); 
          mp.setAudioSessionId(i+1); 

          mp.setDataSource(audio); 
          mp.prepare(); 

          btn.setId(i+1); 
          btn.setTypeface(ionicons); 
          btn.setText(getString(R.string.play_str)); 
          btn.setLayoutParams(params); 

          final int index = i; 
          mp.setOnCompletionListener(new OnCompletionListener() 
          { 

           public void onCompletion(MediaPlayer mp) 
           { 

            btn.setText(getString(R.string.play_str)); 
           } 
          }); 

          btn.setOnClickListener(new View.OnClickListener() { 
            public void onClick(View v) 
            { 


             Log.i("TAG", "index :" + index); 
             Toast.makeText(getApplicationContext(), 
               "Clicked Button Index :" + btn.getId(), 
               Toast.LENGTH_LONG).show(); 
             boolean b = false ; 
             if (b == false) 

             { 

              //txtchanson.setTextColor(R.color.green); 
              mp.start(); 
              btn.setText(getString(R.string.pause_str)); 
              b = true; 

             } 

             else //if (btn.getText().equals(getString(R.string.pause_str))) 
             { 
              mp.pause(); 
              btn.setText(getString(R.string.play_str)); 
              //txtchanson.setTextColor(R.color.gray); 
              b = false; 

             } 
            /* else if (b == true) 
             { 
              btn.setText(getString(R.string.play_str)); 
              mp.pause(); 
             }*/ 
            } 
           }); 


          ll.addView(btn); 
          ll.addView(txtchanson); 
          ll.addView(txtduration); 

          lm.addView(ll); 

         } 

ответ

1

Вы должны разместить boolean b = false ; строки из метода OnClick должно быть как глобальные переменной, потому что на каждом клике, когда вы идете к методу OnClick, ваша b переменные получает ложное значение и он никогда не переходит в позицию else вашего оператора if-else. Все остальное в порядке.

+0

второй щелчок второй кнопки не работает, я хочу, когда я нажимаю кнопку воспроизведения сначала, и когда я нажимаю на другую кнопку, первая приостанавливается, а вторая воспроизводится! –

+0

у вас есть только одна кнопка, поэтому при первом нажатии этой кнопки вы должны запустить плеер, а при втором нажатии той же кнопки вы должны остановить его. Вы попробовали это с моим предложением? –

+0

Я попробовал ваше предложение и его не работал, ошибка, которая у меня была, заключается в том, что когда я нажимаю первый раз, когда играет песня, но когда я нажимаю второй раз на второй кнопке, то не работает –

Смежные вопросы