Simple mediaplayer play mp3 from file path?

132,627

Solution 1

It works like this:

mpintro = MediaPlayer.create(this, Uri.parse(Environment.getExternalStorageDirectory().getPath()+ "/Music/intro.mp3"));
mpintro.setLooping(true);
        mpintro.start();

It did not work properly as string filepath...

Solution 2

String filePath = Environment.getExternalStorageDirectory()+"/yourfolderNAme/yopurfile.mp3";
mediaPlayer = new  MediaPlayer();
mediaPlayer.setDataSource(filePath);
mediaPlayer.prepare();   
mediaPlayer.start()

and this play from raw folder.

int resID = myContext.getResources().getIdentifier(playSoundName,"raw",myContext.getPackageName());

            MediaPlayer mediaPlayer = MediaPlayer.create(myContext,resID);
            mediaPlayer.prepare();
            mediaPlayer.start();

mycontext=application.this. use.

Solution 3

Here is the code to set up a MediaPlayer to play off of the SD card:

String PATH_TO_FILE = "/sdcard/music.mp3";    
mediaPlayer = new  MediaPlayer();
mediaPlayer.setDataSource(PATH_TO_FILE);
mediaPlayer.prepare();   
mediaPlayer.start()

You can see the full example here. Let me know if you have any problems.

Solution 4

Use the code below it worked for me.

MediaPlayer mp = new MediaPlayer();
mp.setDataSource("/mnt/sdcard/yourdirectory/youraudiofile.mp3");
mp.prepare();
mp.start();

Solution 5

I use this class for Audio play. If your audio location is raw folder.

Call method for play:

new AudioPlayer().play(mContext, getResources().getIdentifier(alphabetItemList.get(mPosition)
                        .getDetail().get(0).getAudio(),"raw", getPackageName()));

AudioPlayer.java class:

public class AudioPlayer {

    private MediaPlayer mMediaPlayer;

    public void stop() {
        if (mMediaPlayer != null) {
            mMediaPlayer.release();
            mMediaPlayer = null;
        }
    }
    // mothod for raw folder (R.raw.fileName)
    public void play(Context context, int rid){
        stop();

        mMediaPlayer = MediaPlayer.create(context, rid);
        mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mediaPlayer) {
                stop();
            }
        });

        mMediaPlayer.start();
    }

    // mothod for other folder 
    public void play(Context context, String name) {
        stop();

        //mMediaPlayer = MediaPlayer.create(c, rid);
        mMediaPlayer = MediaPlayer.create(context, Uri.parse("android.resource://"+ context.getPackageName()+"/your_file/"+name+".mp3"));
        mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mediaPlayer) {
                stop();
            }
        });

        mMediaPlayer.start();
    }

}
Share:
132,627
John simit
Author by

John simit

(your about me is currently blank) click here to edit

Updated on February 05, 2022

Comments

  • John simit
    John simit over 2 years

    I have a very simple mediaplayer that play background. It calls file from the apk, but I want it to play from any directory like as music or sdcard.

    Here are my codes:

    private MediaPlayer mpintro;
    
    .
    .
    
    mpintro = MediaPlayer.create(this, R.raw.intro);
            mpintro.setLooping(true);
            mpintro.start();
    
  • John simit
    John simit almost 11 years
    Environment.getExternalStorageDirectory() how can I use like this? Some times different devices may cause a problem width file path?
  • John simit
    John simit almost 11 years
    it says surround with try/catch, when I use filepath.. is it needed?
  • Zala Janaksinh
    Zala Janaksinh almost 11 years
    @MD if you use this type path then some time sdcard name is different.and some device also have 10 gb plus internet memory so it's use as external memory.so this path can't work.
  • Zala Janaksinh
    Zala Janaksinh almost 11 years
    @John simit every time any code u right use the try catch blosk it's good habit and good programing technic.
  • Md Abdul Gafur
    Md Abdul Gafur almost 11 years
    @Zala Janaksinh , This is just an example. I try to tell him, how it work. I am not implement her logic and her code.
  • Zala Janaksinh
    Zala Janaksinh almost 11 years
    @MdAbdulGafur don't take personally i just advice.sorry
  • John simit
    John simit almost 11 years
    catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } it gives me whole catch code, is it enough to use Exception e or should I use what suggested to me?
  • Zala Janaksinh
    Zala Janaksinh almost 11 years
    @Johnsimit simple exception. use only default exception. if helpful then click as correct mark.ok bye
  • pollaris
    pollaris over 6 years
    another android example: mp.setDataSource("/storage/emulated/0/Music/");
  • gumuruh
    gumuruh almost 2 years
    we need to parse the path first became Uri. :D