Main Activity
package com.htd.musicplayer;
import android.content.Intent;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.io.File;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity
{
ListView listView;
ArrayList<File> mySongs;
String[] Songs;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.lv);
mySongs = findMusic(Environment.getExternalStorageDirectory());
Songs = new String[mySongs.size()];
for(int i=0;i<mySongs.size();i++)
{
toast(mySongs.get(i).getName().toString());
Songs[i]=mySongs.get(i).toString().replace(".mp3","");
}
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.song_list,R.id.textView,Songs);
listView.setAdapter(arrayAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
startActivity(new Intent(getApplicationContext(),PlayMusic.class)
.putExtra("Song",position).putExtra("SongList",mySongs)); }
});
}
public ArrayList<File> findMusic (File root)
{
ArrayList<File> arrayList = new ArrayList<File>();
File[] files = root.listFiles();
for (File singleFile:files)
{
if(singleFile.isDirectory())
{
arrayList.addAll(findMusic(singleFile)); }
else
if(singleFile.getName().endsWith(".mp3"))
{
arrayList.add(singleFile);
}
}
return arrayList;
}
public void toast(String SongName)
{
Toast.makeText(getApplicationContext(),SongName,Toast.LENGTH_SHORT).show();
}
}
package com.htd.musicplayer;
import android.content.Intent;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.io.File;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity
{
ListView listView;
ArrayList<File> mySongs;
String[] Songs;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.lv);
mySongs = findMusic(Environment.getExternalStorageDirectory());
Songs = new String[mySongs.size()];
for(int i=0;i<mySongs.size();i++)
{
toast(mySongs.get(i).getName().toString());
Songs[i]=mySongs.get(i).toString().replace(".mp3","");
}
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.song_list,R.id.textView,Songs);
listView.setAdapter(arrayAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
startActivity(new Intent(getApplicationContext(),PlayMusic.class)
.putExtra("Song",position).putExtra("SongList",mySongs)); }
});
}
public ArrayList<File> findMusic (File root)
{
ArrayList<File> arrayList = new ArrayList<File>();
File[] files = root.listFiles();
for (File singleFile:files)
{
if(singleFile.isDirectory())
{
arrayList.addAll(findMusic(singleFile)); }
else
if(singleFile.getName().endsWith(".mp3"))
{
arrayList.add(singleFile);
}
}
return arrayList;
}
public void toast(String SongName)
{
Toast.makeText(getApplicationContext(),SongName,Toast.LENGTH_SHORT).show();
}
}
PlayMusic.Activity
package com.htd.musicplayer;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.SeekBar;
import android.widget.Toast;
import java.io.File;
import java.util.ArrayList;
public class PlayMusic extends AppCompatActivity implements View.OnClickListener
{
ImageButton btprev,btplay,btnext;
MediaPlayer mediaPlayer;
ArrayList<File> arrayList;
SeekBar seekBar;
Uri uri; int position; Thread thread;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play_music);
btnext = (ImageButton) findViewById(R.id.iBNext);
btprev = (ImageButton) findViewById(R.id.iBPrev);
btplay = (ImageButton) findViewById(R.id.iBPlay);
seekBar =(SeekBar) findViewById(R.id.seekBar);
thread= new Thread()
{
@Override
public void run()
{
int totalDuration=mediaPlayer.getDuration();
int currentDuration = 0;
while(currentDuration<totalDuration)
{
try
{
sleep(500);
currentDuration=mediaPlayer.getCurrentPosition();
seekBar.setProgress(currentDuration);
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
};
if(mediaPlayer!=null)
{
mediaPlayer.stop();
mediaPlayer.release();
}
Intent intent =getIntent();
Bundle bundle = intent.getExtras();
arrayList = (ArrayList) bundle.getParcelableArrayList("SongList");
position =bundle.getInt("Song",0);
uri = Uri.parse(arrayList.get(position).toString());
mediaPlayer = MediaPlayer.create(getApplicationContext(),uri);
mediaPlayer.start();
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener()
{
@Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
{
}
@Override public void onStartTrackingTouch(SeekBar seekBar)
{
}
@Override public void onStopTrackingTouch(SeekBar seekBar)
{
mediaPlayer.seekTo(seekBar.getProgress());
}
});
btplay.setOnClickListener(this);
btnext.setOnClickListener(this);
btprev.setOnClickListener(this);
seekBar.setMax(mediaPlayer.getDuration());
thread.start();
} @Override public void onClick(View v)
{
int id = v.getId();
switch (id)
{
case R.id.iBPlay:
if (mediaPlayer.isPlaying())
{
mediaPlayer.pause(); Toast.makeText(PlayMusic.this,"||",Toast.LENGTH_SHORT).show();
}
else
{
mediaPlayer.start();
Toast.makeText(PlayMusic.this,">",Toast.LENGTH_SHORT).show();
}
break;
case R.id.iBNext: mediaPlayer.stop(); mediaPlayer.release();
position =(position+1)%arrayList.size();
uri = Uri.parse(arrayList.get(position).toString());
mediaPlayer = MediaPlayer.create(getApplicationContext(),uri);
mediaPlayer.start();
seekBar.setMax(mediaPlayer.getDuration());
Toast.makeText(PlayMusic.this,">|",Toast.LENGTH_SHORT).show();
break;
case R.id.iBPrev:
mediaPlayer.stop();
mediaPlayer.release();
position =(position-1<0)?arrayList.size()-1:
position-1; uri = Uri.parse(arrayList.get(position).toString());
mediaPlayer = MediaPlayer.create(getApplicationContext(),uri);
mediaPlayer.start();
Toast.makeText(PlayMusic.this,"|<",Toast.LENGTH_SHORT).show();
break;
}
}
}
package com.htd.musicplayer;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.SeekBar;
import android.widget.Toast;
import java.io.File;
import java.util.ArrayList;
public class PlayMusic extends AppCompatActivity implements View.OnClickListener
{
ImageButton btprev,btplay,btnext;
MediaPlayer mediaPlayer;
ArrayList<File> arrayList;
SeekBar seekBar;
Uri uri; int position; Thread thread;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play_music);
btnext = (ImageButton) findViewById(R.id.iBNext);
btprev = (ImageButton) findViewById(R.id.iBPrev);
btplay = (ImageButton) findViewById(R.id.iBPlay);
seekBar =(SeekBar) findViewById(R.id.seekBar);
thread= new Thread()
{
@Override
public void run()
{
int totalDuration=mediaPlayer.getDuration();
int currentDuration = 0;
while(currentDuration<totalDuration)
{
try
{
sleep(500);
currentDuration=mediaPlayer.getCurrentPosition();
seekBar.setProgress(currentDuration);
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
};
if(mediaPlayer!=null)
{
mediaPlayer.stop();
mediaPlayer.release();
}
Intent intent =getIntent();
Bundle bundle = intent.getExtras();
arrayList = (ArrayList) bundle.getParcelableArrayList("SongList");
position =bundle.getInt("Song",0);
uri = Uri.parse(arrayList.get(position).toString());
mediaPlayer = MediaPlayer.create(getApplicationContext(),uri);
mediaPlayer.start();
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener()
{
@Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser)
{
}
@Override public void onStartTrackingTouch(SeekBar seekBar)
{
}
@Override public void onStopTrackingTouch(SeekBar seekBar)
{
mediaPlayer.seekTo(seekBar.getProgress());
}
});
btplay.setOnClickListener(this);
btnext.setOnClickListener(this);
btprev.setOnClickListener(this);
seekBar.setMax(mediaPlayer.getDuration());
thread.start();
} @Override public void onClick(View v)
{
int id = v.getId();
switch (id)
{
case R.id.iBPlay:
if (mediaPlayer.isPlaying())
{
mediaPlayer.pause(); Toast.makeText(PlayMusic.this,"||",Toast.LENGTH_SHORT).show();
}
else
{
mediaPlayer.start();
Toast.makeText(PlayMusic.this,">",Toast.LENGTH_SHORT).show();
}
break;
case R.id.iBNext: mediaPlayer.stop(); mediaPlayer.release();
position =(position+1)%arrayList.size();
uri = Uri.parse(arrayList.get(position).toString());
mediaPlayer = MediaPlayer.create(getApplicationContext(),uri);
mediaPlayer.start();
seekBar.setMax(mediaPlayer.getDuration());
Toast.makeText(PlayMusic.this,">|",Toast.LENGTH_SHORT).show();
break;
case R.id.iBPrev:
mediaPlayer.stop();
mediaPlayer.release();
position =(position-1<0)?arrayList.size()-1:
position-1; uri = Uri.parse(arrayList.get(position).toString());
mediaPlayer = MediaPlayer.create(getApplicationContext(),uri);
mediaPlayer.start();
Toast.makeText(PlayMusic.this,"|<",Toast.LENGTH_SHORT).show();
break;
}
}
}