实现音乐播放器Android应用程序的随机播放按钮

时间:2015-02-13 19:40:14

标签: java android

我想让我的随机按钮正常工作。但我没有成功。我注释掉了该功能的代码。我对Java Android开发有些新手,需要一些指导来了解问题所在。感谢您抽出时间帮助我。

public class MainActivity extends Activity{
private boolean mIsBound = false;
private MusicService mServ;
private ServiceConnection Scon ;
Button playbutton;//play button
Button pausebutton;//pause button
Button stopbutton;//stop button
Button prevbutton;//prev button
Button nextbutton;//next button
Button randombutton;//random button
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //      this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.playinterface);

    Scon =new ServiceConnection(){

        public void onServiceConnected(ComponentName name, IBinder
                binder) {
            mServ = ((new MusicService().new ServiceBinder()).getService());
        }

        public void onServiceDisconnected(ComponentName name) {
            mServ = null;
        }
    };



//      mServ.pauseMusic();
    //play button
    playbutton = (Button) findViewById(R.id.button1);
    playbutton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
//              mp3_play();//mp3 play
//              
            Intent music = new Intent();
            music.setClass(MainActivity.this,MusicService.class);

            startService(music);
            //button enable,disabel set
            playbutton.setEnabled(false);
            playbutton.setText("Playing");
            pausebutton.setEnabled(true);
            stopbutton.setEnabled(true);
            prevbutton.setEnabled(true);
            nextbutton.setEnabled(true);
            randombutton.setEnabled(true);
//              if(mServ!=null){
//                  mServ.mPlayer.start();
//              }else{
//                  ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
//                  for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
//                        String serv = service.service.getClassName();
//                        Log.e("Danial",serv);
//                  }
//              }
        }
    });

    //pause button
    pausebutton = (Button) findViewById(R.id.button2);
    pausebutton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
//              mp3_pause();
            Intent music = new Intent();
            music.setClass(MainActivity.this,MusicService.class);

            stopService(music);
            //button enable,disabel set
            playbutton.setEnabled(true);
            playbutton.setText("Play");
            pausebutton.setEnabled(false);
            stopbutton.setEnabled(false);
            prevbutton.setEnabled(false);
            nextbutton.setEnabled(false);
            randombutton.setEnabled(false);
        }
    });

   //stop button
    stopbutton = (Button) findViewById(R.id.button3);
    stopbutton.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
//              mp3_stop();
            Intent music = new Intent();
            music.setClass(MainActivity.this,MusicService.class);

            stopService(music);
            //button enable,disabel set
            playbutton.setEnabled(true);
            playbutton.setText("Play");
            pausebutton.setEnabled(false);
            stopbutton.setEnabled(false);
            prevbutton.setEnabled(false);
            nextbutton.setEnabled(false);
            randombutton.setEnabled(false);
        }
    });

//        //Prev button
    prevbutton = (Button) findViewById(R.id.button4);
//        prevbutton.setOnClickListener(new View.OnClickListener() {
//          public void onClick(View v) {
//              
//              if(randomStart == true)//when play random
//              {
//                  Random rnd = new Random();
//                  int randIndex = rnd.nextInt(mp3_num);               
//                  if(randIndex == index_mp3)
//                  {
//                      if(randIndex == mp3_num-1)
//                          randIndex--;
//                      if(randIndex == 0)
//                          randIndex++;
//                  }
//                  
//                  index_mp3 = randIndex;
//                  mp3_play();//mp3 play
//                  return;
//              }
//              
//              if(randomStart == false)//when play into order
//              {
 //                 if(index_mp3 > 0)
//                  {
//                      index_mp3--;//select pre mp3
//                      mp3_play();//mp3 play
//                  }
//                  else{
//                      Toast.makeText(getActivity(), 
//                              "There is not prev mp3!", Toast.LENGTH_LONG).show();
//                  }
//                  return;
//              }
//          }
//      });

//        //Next button
    nextbutton = (Button) findViewById(R.id.button5);
//        nextbutton.setOnClickListener(new View.OnClickListener() {
//          public void onClick(View v) {
//              if(randomStart == true)//when play random
//              {
//                  Random rnd = new Random();
//                  int randIndex = rnd.nextInt(mp3_num);               
//                  if(randIndex == index_mp3)
//                  {
//                      if(randIndex == mp3_num-1)
//                          randIndex--;
//                      if(randIndex == 0)
//                          randIndex++;
//                  }
//                  
//                  index_mp3 = randIndex;
//                  mp3_play();//mp3 play
//                  return;
//              }
//              
//              if(randomStart == false)//wehn play into order
//              {
//                  if(index_mp3 < mp3_num -1)
//                  {
//                      index_mp3++;//select next mp3
//                      mp3_play();//mp3 play
//                  }
//                  else{
//                      Toast.makeText(getActivity(), 
//                              "There is not next mp3!", Toast.LENGTH_LONG).show();
//                  }
//                  return;
//              }
//          }
//      });

//        //radmom button
    randombutton = (Button) findViewById(R.id.button6);
//        randombutton.setOnClickListener(new View.OnClickListener() {
//          public void onClick(View v) {
//              if(randomStart == false)
//              {
//                  randomStart = true;//start playing random
//                  randombutton.setText("Shuffle On");
//                  return;
//              }
//              
//              if(randomStart == true)
//              {
//                  randomStart = false;//No playing random
//                  randombutton.setText("Shuffle Off");
//                  return;
//              }
//          }
//      });

    //pause,stop button disable
    pausebutton.setEnabled(false);
    stopbutton.setEnabled(false);
//        prevbutton.setEnabled(false);
//        nextbutton.setEnabled(false);
//        randombutton.setEnabled(false);


    ActivityManager manager = (ActivityManager)     getSystemService(Context.ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if    (MusicService.class.getName().equals(service.service.getClassName())) {
            playbutton.setEnabled(false);
            playbutton.setText("Playing");
            pausebutton.setEnabled(true);
            stopbutton.setEnabled(true);
            prevbutton.setEnabled(true);
            nextbutton.setEnabled(true);
            randombutton.setEnabled(true);
        }
    }


    //      //Go to the Fragment
    //      changeFragment(
    //              "PlayInterface", 
    //              R.id.frameRootContainer, 
    //              new MainActivityFragment(), 
    //              false);


}

void doBindService(){
    bindService(new Intent(this,MusicService.class),
            Scon,Context.BIND_AUTO_CREATE);
    mIsBound = true;
}

void doUnbindService()
{
    if(mIsBound)
    {
        unbindService(Scon);
        mIsBound = false;
    }
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public void onResume() {
    super.onResume();

} 

@Override
protected void onStop() {
    // TODO Auto-generated method stub
    super.onStop();
//      mServ.pauseMusic();
//      mServ.resumeMusic();
//      mServ.stopMusic();
}
@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
}
//  public void changeFragment(String fragmentTag, int layoutId, Fragment frag, boolean addToBackStack) {
//      
//      FragmentManager fm = getSupportFragmentManager();//Getting Fragment handle
//        FragmentTransaction transaction = fm.beginTransaction();//Starting Fragment
//        
//        transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);//Setting option
//      transaction.replace(layoutId, frag, fragmentTag);//Replace the fragment
//      
//      if(addToBackStack)//put fragment on the interface
//          transaction.addToBackStack(null);
//      
//      transaction.commit();//Run
//  }   

}

1 个答案:

答案 0 :(得分:0)

您的随机播放按钮单击侦听器只需更改randomStart的值,此值将用于上一个和下一个按钮(注释就像随机播放按钮单击侦听器一样)。如果你取消注释它们(prevbutton click listener和nextbutton click listener and randombutton),你的代码似乎没有任何错误。 按下下一个或上一个按钮时,您可以看到您的随机播放将起作用。