如何在播放器中添加循环和随机播放

时间:2014-04-23 06:23:21

标签: android

如何在android.i添​​加循环和随机播放添加,但它没有工作。请解决此问题并帮助我。以下是我的代码详细信息。我想添加重复和随机选项,我做了一些编码如下

                @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.player);
    final AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
    int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
    int curVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
      // MusicPlayerActivity.mpObject.setOnCompletionListener(this);
       settings=(Button)findViewById(R.id.settings);

       hide=(Button)findViewById(R.id.hide);
       loop=(ImageButton)findViewById(R.id.btnRepeat);
       shuffle=(ImageButton)findViewById(R.id.btnShuffle);
       time_duration=(TextView)findViewById(R.id.time_duration);
       total_time_duration=(TextView)findViewById(R.id.total_time_duration);


       volumebar=(SeekBar)findViewById(R.id.volbar);
      volumebar.setMax(maxVolume);
       volumebar.setProgress(curVolume);
       volumebar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
           @Override
           public void onStopTrackingTouch(SeekBar arg0) {
           }

           @Override
           public void onStartTrackingTouch(SeekBar arg0) {
           }

           @Override
           public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {

               System.out.println("changing volumes.....");
               audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, arg1, 0);
           }
       });

      seekBar = (SeekBar) findViewById(R.id.seekBar);
    seekBar.setMax(300);
    seekBar.setOnSeekBarChangeListener(this);

    play=(ImageView) findViewById(R.id.player_play_pause_image);
    settings.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent i=new Intent(MusicPlayerActivity.this,Settings.class);
            startActivity(i);
        }
    });
    mBinder = new ServiceBinder(this);
    mBinder.bindService(new ServiceBinderDelegate() {

        @Override
        public void onIsBound() {
            togglePlay(Songs.current_track);

        }
    });
     loop.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {

                if(isRepeat){
                    isRepeat = false;
                    Toast.makeText(getApplicationContext(), "Repeat is OFF", Toast.LENGTH_SHORT).show();
                    loop.setImageResource(R.drawable.ic_launcher);
                }else{
                    // make repeat to true
                    isRepeat = true;
                    Toast.makeText(getApplicationContext(), "Repeat is ON", Toast.LENGTH_SHORT).show();
                    // make shuffle to false
                    isShuffle = false;
                    loop.setImageResource(R.drawable.ic_launcher);
                    shuffle.setImageResource(R.drawable.ic_launcher);
                }
            }
        });

    linearplayerlayout=(LinearLayout)findViewById(R.id.playerlayout);

      utils = new Utilities();

      mIndex=Songs.current_track;
     StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy);
    //   add=(Button)findViewById(R.id.add);


     hide.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
        //  clear_music();
            //finish();
            Songs.current_track=mIndex;
            moveTaskToBack (true);
        }
    });


    seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            if (mIsTrackLoaded)
                mBinder.getService().seek((float) seekBar.getProgress() / seekBar.getMax());
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

        }
    });

    shuffle.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            if(isShuffle){
                isShuffle = false;
                Toast.makeText(getApplicationContext(), "Shuffle is OFF", Toast.LENGTH_SHORT).show();
                shuffle.setImageResource(R.drawable.ic_launcher);
            }else{
                // make repeat to true
                isShuffle= true;
                Toast.makeText(getApplicationContext(), "Shuffle is ON", Toast.LENGTH_SHORT).show();
                // make shuffle to false
                isRepeat = false;
                shuffle.setImageResource(R.drawable.ic_launcher);
                loop.setImageResource(R.drawable.ic_launcher);
            }
        }
    });


    findViewById(R.id.player_prev).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            playPrev();
        }
    });

    findViewById(R.id.player_next).setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            playNext();
        }
    });

    findViewById(R.id.player_play_pause).setOnClickListener(

    new OnClickListener() {

        @Override
        public void onClick(View v) {
            System.out.println("TOGGLE PLAY");
            togglePlay(mIndex);
        }
    });



}

1 个答案:

答案 0 :(得分:0)

您可以在浏览图书馆时快速将歌曲添加到队列中...菜单图标可将音乐添加到队列中。

使用屏幕底部“正在播放”栏上的按钮来控制播放,随机播放歌曲或重复播放歌曲。

这是“正在播放”屏幕的快速参考指南。 ......上一首或下一首曲目;如何重新排序播放队列;如何重复或随机播放队列;溢出菜单...添加到播放队列:将此项目放在播放队列的末尾。的 DB Product Review