package com.android.danmusic;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.ArrayList;
import android.app.ListActivity;
import android.content.Context;
import android.database.Cursor;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class makelist extends ListActivity {
    
 private ListView listview; 
 public static final int MAX = 100;
 private MediaPlayer mp = new MediaPlayer(); 
 int cnt = 0;
 int current = 0;
 
 TextView tv;
 private static final String MEDIA_PATH = new String("/sdcard/");
 private ArrayList<Music> songs = new ArrayList<Music>();
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.makelist);
        tv = (TextView)findViewById(R.id.temp);
        listview = getListView();
                
        // SD카드로 부터 파일 목록 불러오기
        updateSongList();
    }
    public void updateSongList(){
     
     Music[] music = new Music[MAX];
     //Resources r = getResources();
     String[] mCursorCols = new String[]{
      MediaStore.Audio.Media._ID,
      MediaStore.Audio.Media.ARTIST,
      MediaStore.Audio.Media.TITLE,
      MediaStore.Audio.Media.ALBUM
     };
     
     Cursor cur = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, mCursorCols, null, null, null);
     
     if( cur.moveToFirst() ){      
      
      String title, artist, album;
     
      int titleColumn = cur.getColumnIndex(MediaStore.Audio.Media.TITLE);  
      int artistColumn = cur.getColumnIndex(MediaStore.Audio.Media.ARTIST); 
      int albumColumn = cur.getColumnIndex(MediaStore.Audio.Media.ALBUM);    
      
      do{
       title = cur.getString(titleColumn);
       artist = cur.getString(artistColumn);
       album = cur.getString(albumColumn);
       
       music[cnt] = new Music(artist, title, album);
       songs.add(music[cnt]);
       
       cnt++;
      }while(cur.moveToNext());      
     }
     MusicInformation songList = new MusicInformation(this, R.layout.listform, songs);
      
  setListAdapter(songList);
  //listview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);     
    }
    
    @Override
    // 리스트에서 곡을 클릭했을때 재생
    protected void onListItemClick(ListView l,View v, int position, long id){ 
     /*File home = new File(MEDIA_PATH);
     String[] list = new String[10];
     list = home.list(new MP3Filter());*/
     current = position; 
     playsong(MEDIA_PATH + songs.get(position));
     tv.setText(MEDIA_PATH + songs.get(position));
     
    }
      
    private void playsong(String Spath) {
     mp.reset();
  try {
   mp.setDataSource(Spath);
   mp.prepare();
   mp.start();
  } 
  catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  
 }
 private class MusicInformation extends ArrayAdapter<Music>{
     private ArrayList<Music> items;
     
     public MusicInformation(Context context, int textViewResourceId, ArrayList<Music> items){
      super(context, textViewResourceId, items); 
   this.items = items;
     }
          
     @Override
     public View getView(int position, View view, ViewGroup parent){
      View v = view;
      if( v == null ){
       LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       v = vi.inflate(R.layout.listform, null);
      }
      Music m = items.get(position);
      if( m != null ){
       TextView tt = (TextView)v.findViewById(R.id.row_artist);
       TextView bt = (TextView)v.findViewById(R.id.row_title);
       
       if( tt != null ){
        tt.setText(m.getGasu() + " - " + m.getJemok()); 
       }
       if( bt != null ){
        bt.setText(m.getAlbumName());
       }
      }
      
      return v;
     }
    }
    
    class Music{
     private String gasu;
     private String jemok;
     private String albumName;
         
     public Music(String _gasu, String _jemok, String _albumName){
      this.gasu = _gasu;
      this.jemok = _jemok;
      this.albumName = _albumName;
       }
     
     public String getGasu(){
      return gasu; 
     }
     
     public String getJemok(){
      return jemok; 
     }
     
     public String getAlbumName(){
      return albumName; 
     }
      
    }
    
    class MP3Filter implements FilenameFilter{
     public boolean accept(File dir, String name){
      return name.endsWith(".mp3"); 
     }
    }
}

이것이 소스 입니다. 보실 부분은 mp.setDatesource()  이 부분인데요 (73번째 줄 부터)

MEDIA_PATH는 sdcard/LOST.DIR/ 이 폴더로  잘 설정 되어 있는데

songs.get(position) 이 부분에서 그림과 같은 경로가 저장 되어 버립니다...;;

음악이 제대로 나오는 다른 소스들을 보면 sdcard/LOST.DIR/음악이름.mp3 이렇게 잘 나오는데...

계속해서 이상한 경로가 나오네요.

ㅈㅔ대로된 경로 좀 잡아주세요ㅠ