0

I have 2 songs in res folder how to play them using one mediaplayer

I have used this code for 2 different songs how can i play songs using one mediaplayer

public class Nationalanthem extends Activity{

int songs[]={R.drawable.inno,R.drawable.vandemataram};
MediaPlayer mp;
ImageButton play,stop,b1,b2,back,exit,b3;
//Button back,exit;
MediaPlayer mediaPlayer,mediaplayer1;
RadioGroup rg;
RadioButton van,jana;
@Override

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.natinal_play);



         mp=new MediaPlayer();
         back=(ImageButton)findViewById(R.id.imageButton6);
         exit=(ImageButton)findViewById(R.id.imageButton5);

         b1=(ImageButton)findViewById(R.id.imageButton3);
         b2=(ImageButton)findViewById(R.id.imageButton2);
         b3=(ImageButton)findViewById(R.id.exitbton);
         rg=(RadioGroup)findViewById(R.id.radioGroup1);
         van=(RadioButton)findViewById(R.id.radiov);
         jana=(RadioButton)findViewById(R.id.Radioja);

         //mediaPlayer = MediaPlayer.create(getApplicationContext(),R.drawable.inno);
         //mediaplayer1 = MediaPlayer.create(getApplicationContext(),R.drawable.vandemataram);



     b1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub                                  
                rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {

                    @Override
                    public void onCheckedChanged(RadioGroup group, int checkedId) {
                        // TODO Auto-generated method stub
                        if (mediaPlayer != null)
                           // mediaPlayer.reset();
                        switch (checkedId) {
                        case R.id.radiov:
                            mediaPlayer = MediaPlayer.create(getApplicationContext(),songs[0]);
                            mediaPlayer.start();
                            break;
                        case R.id.Radioja:
                            mediaPlayer = MediaPlayer.create(getApplicationContext(),songs[1]);
                            mediaPlayer.start();
                            break;
                        default:
                            break;
                        }



                    }
                });

            }
        });

         b2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                //mediaPlayer.release();
                mediaPlayer.stop();
                mediaPlayer = MediaPlayer.create(getApplicationContext(),R.drawable.inno);
            }
        });

         b3.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                mediaPlayer.pause();
                //mediaplayer1.pause();
            }
        });

back.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        //mediaplayer1.stop();

        mediaPlayer.stop();
        mediaPlayer = MediaPlayer.create(getApplicationContext(),R.drawable.inno);
    Intent i2= new Intent(getApplicationContext(),Second.class);
    startActivity(i2);
    //finish();
    }
}); 
exit.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        //mediaplayer1.stop();

        AlertDialog.Builder altert =new AlertDialog.Builder(Nationalanthem.this);
        altert.setTitle("Exit");
        altert.setIcon(R.drawable.ic_launcher);
        altert.setMessage("Are you sure want to exit");
        altert.setPositiveButton("Yes",new DialogInterface.OnClickListener()
        { 
            public void onClick(DialogInterface dialog, int which)
        {
                Intent intent = new Intent(Intent.ACTION_MAIN);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
                intent.addCategory(Intent.CATEGORY_HOME);   
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                finish();
                startActivity(intent);
                mediaPlayer.stop();
                mediaPlayer = MediaPlayer.create(getApplicationContext(),R.drawable.inno);
                mediaplayer1.stop();
                mediaplayer1 = MediaPlayer.create(getApplicationContext(),R.drawable.vandemataram);     

        }

        });

        altert.setNegativeButton("No",new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {
                //Toast.makeText(getApplicationContext(), "this is delete",Toast.LENGTH_LONG).show();

            }
        });

        altert.show();
            //System.exit(0);
    }


});



}


}

I am unable to listen songs now no sound

SANJEEV REDDY
  • 37
  • 1
  • 4
  • 17

3 Answers3

1

As you can see in the documentation, you can use reset() to bring the media player back to its initial state.

Henry
  • 42,982
  • 7
  • 68
  • 84
1

You can put the files in the asset directory and get the list of files using File.listFiles() method. Then use this:

for (File file : files) {
    AssetFileDescriptor afd = getAssets().openFd(file.getName());
    player = new MediaPlayer();
    player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
    player.prepare();
    player.start();
    // Do other tasks
}

For more information have a look at this.

Community
  • 1
  • 1
Rafi Kamal
  • 4,522
  • 8
  • 36
  • 50
0

try this code

Integer songs[]={R.drawable.inno,R.drawable.rock,R.drawable.hello};

next.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            mediaPlayer.reset();
            mediaPlayer = MediaPlayer.create(getApplicationContext(),song[index]);
            mediaPlayer.start();

        }
    });

EDIT - using RadioGroup

radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            // TODO Auto-generated method stub
            if (mediaPlayer != null)
                mediaPlayer.reset();
            switch (checkedId) {
            case R.id.radiov:
                mediaPlayer = MediaPlayer.create(getApplicationContext(),song[0]);
                mediaPlayer.start();
                break;
            case R.id.Radioja:
                mediaPlayer = MediaPlayer.create(getApplicationContext(),song[1]);
                mediaPlayer.start();
                break;
            default:
                break;
            }



        }
    });
Ketan Ahir
  • 6,678
  • 1
  • 23
  • 45
  • switch(id1) { case R.id.radiov: mediaPlayer=MediaPlayer.create(getApplicationContext(), songs[0]); mediaPlayer.start(); break; case R.id.Radioja: mediaPlayer=MediaPlayer.create(getApplicationContext(), songs[1]); mediaPlayer.start();break; } here i am to play only first song m unable to play second song. – SANJEEV REDDY Sep 17 '13 at 08:25
  • Here i have used radio group for 2 songs i should play only one song at a time.when i click on pause song is playing from first – SANJEEV REDDY Sep 17 '13 at 08:33
  • I have written switch case in onclick method for a play button – SANJEEV REDDY Sep 17 '13 at 10:24
  • Hey its working when i am using in new project but how can i pause and stop i have tried but i am confused – SANJEEV REDDY Sep 17 '13 at 11:36
  • mOnVideoSizeChangedListener is null. Failed to send MEDIA_SET_VIDEO_SIZE message. i am getting this eeor – SANJEEV REDDY Sep 17 '13 at 11:36
  • you can use `mediaplayer.pause()` and `mediaplayer.stop()` to pause and stop respectively. – Ketan Ahir Sep 17 '13 at 11:40