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

标签 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
//  }   

}

最佳答案

您的随机播放按钮单击监听器只需更改 randomStart 的值,并且该值用于上一个和下一个按钮(其注释就像随机播放按钮单击监听器一样)。如果您取消注释它们(上一个按钮单击监听器和下一个按钮单击监听器以及随机按钮),您的代码似乎将正常工作而不会出现任何错误。 您可以看到,当您按下一个或上一个时,随机播放就会开始工作。

关于java - 为音乐播放器 Android 应用程序实现随机播放按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28507466/

相关文章:

java - Java中数组的默认初始化是什么?

java - Apache Camel : How to transmit exceptions over a SEDA endpoint?

java - 时间序列数据 - 计算两组的出现次数

java - 为什么 Java 对 HashMap 条目进行排序,尽管它不应该排序?

android - 如何从 Android appcompat v7 21 库中实现 DrawerArrowToggle

android - intellij idea 13社区版创建android测试项目

java - 无法使用java从xml中读取特殊字符

android - 如果 Internet 或 Signal 出现故障,如何捕获异常

java - 如何让 float 操作按钮在每次点击时旋转

java - 从 Firestore 检索嵌套对象并将其放入 Android 中的 RecyclerView 中?