public class MainActivity extends Activity implements AdapterView.OnItemClickListener { private ArrayList audioList; private File file; private ListView lvAudio; private Context context; private Adapter Adaptr; private Handler durationHandler = new Handler(); double timeElapsed = 0, finalTime = 0; int forwardTime = 2000, backwardTime = 2000; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); audioList = new ArrayList(); String root_sd = Environment.getExternalStorageDirectory().toString(); file = new File( root_sd + "/Music/AudioFile/" ) ; File list[] = file.listFiles(); for( int i=0; i< list.length; i++) { audioList.add(list[i].getName()); Log.e("Checking","Checking"+audioList.get(i)); } getid(); Adaptr = new Adapter(MainActivity.this,audioList); lvAudio.setAdapter(Adaptr); Adaptr.notifyDataSetChanged(); setListner(); } private void setListner() { lvAudio.setOnItemClickListener(this); } private void getid() { lvAudio =(ListView)findViewById(R.id.lvAudio); } @Override public void onItemClick(AdapterView parent, View view, int position, long id) { final String fileName = audioList.get(position); final String path = "/Music/AudioFile/"; Log.e("Checking File:", "Checking=======:" + fileName); final MediaPlayer mp = MediaPlayer.create(MainActivity.this, Uri.parse(Environment.getExternalStorageDirectory().getPath() + path + fileName)); final ImageView imgPlay = (ImageView)view.findViewById(R.id.imgPlay); final ImageView imgPause =(ImageView)view.findViewById(R.id.imgPause); final TextView tvTotalTime =(TextView)view.findViewById(R.id.tvTotalTime); final TextView duration =(TextView)view.findViewById(R.id.duration); final SeekBar seekbar = (SeekBar)view.findViewById(R.id.seekbar); // Handler class to change seekbar final Runnable updateSeekBarTime = new Runnable() { public void run() { //get current position timeElapsed = mp.getCurrentPosition(); finalTime = mp.getDuration(); //set seekbar progress seekbar.setProgress((int) timeElapsed); tvTotalTime.setText(String.format("%d min, %d sec", TimeUnit.MILLISECONDS.toMinutes((long) finalTime), TimeUnit.MILLISECONDS.toSeconds((long) finalTime))); //set time remaing double timeRemaining = finalTime - timeElapsed; duration.setText(String.format("%d min, %d sec", TimeUnit.MILLISECONDS.toMinutes((long) timeRemaining), TimeUnit.MILLISECONDS.toSeconds((long) timeRemaining) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes((long) timeRemaining)))); //repeat yourself that again in 100 miliseconds durationHandler.postDelayed(this, 100); } }; seekbar.setClickable(true); seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (fromUser) { mp.seekTo(progress); } } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); imgPlay.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mp.isPlaying()) { mp.reset(); } else { mp.start(); Toast.makeText(MainActivity.this, "Playing", Toast.LENGTH_SHORT).show(); timeElapsed = mp.getCurrentPosition(); seekbar.setProgress((int) timeElapsed); durationHandler.postDelayed(updateSeekBarTime, 100); finalTime = mp.getDuration(); seekbar.setMax((int) finalTime); imgPlay.setVisibility(View.INVISIBLE); imgPause.setVisibility(View.VISIBLE); } } }); imgPause.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mp.pause(); imgPause.setVisibility(View.INVISIBLE); imgPlay.setVisibility(View.VISIBLE); Toast.makeText(MainActivity.this, "Paused..............", Toast.LENGTH_SHORT).show(); } }); mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { imgPause.setVisibility(View.INVISIBLE); imgPlay.setVisibility(View.VISIBLE); } }); } } Adapter: public class Adapter extends BaseAdapter { ArrayList audioList; Context context; private static LayoutInflater inflater = null; private MediaPlayer mediaPlayer=new MediaPlayer(); public Adapter(MainActivity mainActivity, ArrayList audioList) { this.context = mainActivity; this.audioList = audioList; } @Override public int getCount() { return audioList.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } public class Holder { public ImageView imgIcon, imgPlay, imgPause, imgStop; } @Override public View getView(final int position, View convertView, ViewGroup parent) { View myView = convertView; if (myView == null) { ImageView imgIcon, imgPlay, imgPause, imgStop; SeekBar seekbar; LayoutInflater inflater = LayoutInflater.from(context); myView = inflater.inflate(R.layout.video_adapter, null); TextView tvTotalTime,duration; } return myView; } }