2016-02-23 1 views
0

Je ne suis pas en mesure de résoudre un problème simple après des heures de recherche. Ma compétence noob est épique.Ressources Media Player dans le groupe Radio

J'ai un groupe de radio où est peu de chansons que je voudrais jouer ou arrêter à cause de deux boutons de contrôle. Je suis capable de jouer et de m'arrêter, mais il n'est plus possible de rejouer la même chanson. En erreur logcat (-38, 0). Je sais que je dois redéfinir une nouvelle source, mais je ne suis pas capable de la gérer. Je pensais que je pourrais mettre en nouvelle source bouton d'arrêt, mais il n'y a pas la méthode pour obtenir la dernière piste a joué ...

@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(); 


     } 
    }); 

Répondre

0

Eh bien, à la fin, je l'ai fait comme ça. Désolé de te déranger. Je ne programmer à nouveau en état d'ébriété :)

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;