단말에 있는 3gp 파일을 플레이 하는건데요... 
한번 플레이 하고 나서 다음 플레이 하려고 하면 자꾸 오류가 나네욤... 

public class SoundPlayer {

private static MediaPlayer mp =  new MediaPlayer();
//[플레이]
 public void play(final String strFileFullName) { try { mp.setDataSource(strFileFullName); // mp3파일 경로 mp.prepare(); // 준비 mp.setLooping(false); // 반복재생 false mp.start(); // 시작 } catch(IOException e) { Log.v(LanguageRecorder.TAG,"SoundPlayer play IOException : "+e.getMessage()); e.printStackTrace(); } }

//[중지]
public void stop()
{
mp.stop();
//mp.release();
}
}

플레이 중지소스는 위와 같은데요...
10초짜리 파일을 플레이 하게되면... 
10초가 되었을때 핸들러를 통해 stop를 호출해서 음악을 종료하게 됩니다...

근데 이상태에서 다시 파일을 플레이 하려고 하니 자꾸 아래와 같은 오류가 나네요...
[오류내용]
10-08 11:46:26.994: ERROR/AndroidRuntime(10991): Uncaught handler: thread main exiting due to uncaught exception
10-08 11:46:27.057: ERROR/AndroidRuntime(10991): java.lang.IllegalStateException
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at android.media.MediaPlayer.setDataSource(Native Method)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at com.mgmobile.android.SoundPlayer.play(SoundPlayer.java:30)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at com.mgmobile.android.LanguageRecorder.onClick(LanguageRecorder.java:482)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at android.view.View.performClick(View.java:2370)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at android.view.View.onTouchEvent(View.java:4185)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at android.view.View.dispatchTouchEvent(View.java:3715)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:883)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1700)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1111)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1684)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1701)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at android.os.Looper.loop(Looper.java:123)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at android.app.ActivityThread.main(ActivityThread.java:4364)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at java.lang.reflect.Method.invokeNative(Native Method)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at java.lang.reflect.Method.invoke(Method.java:521)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at dalvik.system.NativeStart.main(Native Method)



위의 오류코드에서 
10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at com.mgmobile.android.SoundPlayer.play(SoundPlayer.java:30)
부분이 빨간색으로 표시해놓은 부분인데요... 파일 경로는 제대로 받아 오는데 잘 모르겠네요.. ㅠㅠ.. 


10-08 11:46:27.057: ERROR/AndroidRuntime(10991):     at com.mgmobile.android.LanguageRecorder.onClick(LanguageRecorder.java:482)
부분이 본문에서 플레이메서드를 호출하는 부분인데요... 
sd.play("파일경로"); 처럼 되어 있습니다...


java.lang.IllegalStateException 이 오류가 왜 나는것인지 도무지 감을 잡을수가 없네요.. 
아니면 java.lang.IllegalStateException 오류를 찍어볼수 있는 방법은 없을까요???

고수님들의 도움을 부탁드립니다.... 
그럼.. 즐점하셔욤... ^^