package com.androidsample.Action_Sound;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnTouchListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore.Audio.Media;
import android.widget.ListView;

public class My_Rocrdings extends Activity {
 private final static String DEBUG_TAG = "My_Rocrdings";
    /** Called when the activity is first created. */
 
 private ArrayList<ItemList> mRecItems;
 private ItemAdapter mItemListAdapter;
 private ListView mListView_rec_list;
 
 private class ItemList
 {
  int  id;    /* db idx   */
       String title;   /* Rec 저장 이름  */
       String  path;   /* 저장 path */
       Uri  rec_uri;  /* 저장된 URI */
 }
 
 ListView listview;
 
 @Override
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.my_recordings);
       
       
        mListView_rec_list = (ListView)findViewById(R.id.lv_rec_list);
       
        /* record list 가져 오기 */
        display_data_update();
       
        if( mRecItems != null ) {
         show_data_list();
        }    
    }
 
  private void display_data_update() {
   String[] projection = new String[] { Media._ID, Media.TITLE, Media.DATA};
   Cursor audio_list;
   
   Uri mMedia = Media.EXTERNAL_CONTENT_URI;
   audio_list = managedQuery(mMedia, projection, null, null, Media.DEFAULT_SORT_ORDER + " ASC");
   
   mRecItems = null ;
   mRecItems = new ArrayList<ItemList>();
   
   audio_list.moveToFirst();
        while(!audio_list.isAfterLast()) {
         
         Log.d(DEBUG_TAG, "_ID is " + audio_list.getInt(0));
         Log.d(DEBUG_TAG, "TITLE NAME is " + audio_list.getString(1));
         Log.d(DEBUG_TAG, "Audio file path is " + audio_list.getString(2));
         Log.d(DEBUG_TAG, "Audio file uir" +  Media.getContentUriForPath(audio_list.getString(2)));
         
         ItemList tmp = new ItemList();
         
         tmp.id = audio_list.getInt(0);
         tmp.title = audio_list.getString(1);
         tmp.path = audio_list.getString(2);
         tmp.rec_uri = Media.getContentUriForPath(audio_list.getString(2));
         
         mRecItems.add(tmp);
         
         audio_list.moveToNext();
        }
       
        audio_list.close();
   
  }
  
  private void show_data_list() {
   mItemListAdapter =  new ItemAdapter(this, R.layout.rec_list, mRecItems);
   mListView_rec_list.setItemsCanFocus(false);
   mListView_rec_list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
   mListView_rec_list.setAdapter(mItemListAdapter); 
  }
  
  private class ItemAdapter extends ArrayAdapter<ItemList> {
   private ArrayList<ItemList> items;
   
   public ItemAdapter(Context context, int textViewResourceId ,
    ArrayList<ItemList> objects) {
   super(context, textViewResourceId, objects);
   // TODO Auto-generated constructor stub
   this.items = objects;
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
   // TODO Auto-generated method stub
   View v = convertView;
   
   if( v == null ) {
    LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    v = vi.inflate(R.layout.rec_list, null);
   }
   
   ItemList curItem = items.get(position);
   
   if( curItem != null ) {
    TextView l_Title = (TextView)v.findViewById(R.id.txt_rec_title);
    l_Title.setText(curItem.title);
    
    ImageView  iv_play = (ImageView)v.findViewById(R.id.img_play_rec); // img_play_rec 재생이미지 ID
    iv_play.setOnTouchListener(new OnItemTouchListener(position));
   }
   return v;
  }
  }
  
  private class OnItemTouchListener implements OnTouchListener {
  private int mPosition;
  
  OnItemTouchListener(int positon) {
   mPosition = positon;
  }

  public boolean onTouch(View view, MotionEvent event) {
   Log.i(DEBUG_TAG , "Touch" + event.getAction());
   // TODO Auto-generated method stub
   if( event.getAction() == MotionEvent.ACTION_DOWN ) {
    Log.i(DEBUG_TAG, "Touch position is " + mPosition );
    
    ItemList curItem = mRecItems.get(mPosition);
    
    MediaPlayer mPlayer = new MediaPlayer();
    try {
     mPlayer.setDataSource(curItem.path);
     mPlayer.prepare();
     
    } catch(IOException e) {
     
    }
    
       mPlayer.start(); // 뮤직플레이
    
   }
   
   return false;
  }
  
  };
}

 

-------------------------------------------------------------------------------------------------------------------

녹음한것을 뮤직에서 불러오는것인데요...

재생버튼누르면 재생까지는 되는데......

재생정지도 하고 싶은데요.... 정지이미지버튼 추가한다음에 무슨코드 넣으면 되나요???