2016-02-23 2 views
0

Я не могу решить один простой вопрос за часами исследования. Мое умение noob является эпическим.Ресурс медиа-плеера в Radio Group

У меня есть группа радио, где есть несколько песен, которые я хотел бы сыграть или остановить из-за двух кнопок управления. Я могу играть и останавливаться, но тогда невозможно воспроизвести ту же песню снова. В ошибке logcat (-38, 0). Я знаю, что мне нужно снова установить новый источник, но я не могу справиться с этим. Я, хотя я мог бы установить новый источник в кнопку остановки, но не метод, чтобы получить последний играл трек ...

@Override 
     public void onCheckedChanged(RadioGroup group, int checkedId) { 
      switch (checkedId) { 
        case R.id.rb1: { 
         if (mp.isPlaying()){ 
          mp.stop(); 
          mp = MediaPlayer.create(mContext, R.raw.actionable);} 
         else { 
         mp = MediaPlayer.create(mContext, R.raw.actionable);} 
        } 
        break; 

        case R.id.rb2: { 
         mp = MediaPlayer.create(mContext, R.raw.cute); 

        } 
        break; 

        case R.id.rb3: { 
         mp = MediaPlayer.create(mContext, R.raw.dubstep); 
        } 
        break; 

        case R.id.rb4: { 
         mp = MediaPlayer.create(mContext, R.raw.epic); 
        } 
        break;} 
     } 
    }); 

    ibPlay = (ImageButton) findViewById(R.id.ibPlay); 
    ibPlay.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      mp.start(); 
     } 
    }); 


    ibStop = (ImageButton) findViewById(R.id.ibStop); 
    ibStop.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      mp.stop(); 


     } 
    }); 

ответ

0

Ну, в конце концов, я сделал это так. Извините, что беспокоил вас. Я никогда не должен программировать снова пьян :)

int whatsong = 1; 

final RadioGroup radioGroup = (RadioGroup)findViewById(R.id.rg); 
    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(RadioGroup group, int checkedId) { 
      if (mp.isPlaying()){ 
       mp.stop(); 
      } 
      switch (checkedId) { 
        case R.id.rb1: { 

         whatsong = 1; 
        } 
        break; 

        case R.id.rb2: { 
         whatsong = 2; 
        } 
        break; 

        case R.id.rb3: { 
         whatsong = 3; 
        } 
        break; 

`

enter code here`ibPlay.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (mp.isPlaying()){ 
        mp.stop(); 
       } 

       switch (whatsong){ 

        case 1:{mp = MediaPlayer.create(mContext, R.raw.actionable); 
         mp.start();} 
        break; 
        case 2:{mp = MediaPlayer.create(mContext, R.raw.badass); 
         mp.start();} 
        break; 
Смежные вопросы