package com.example.ise_app.speedListening;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import com.example.ise_app.R;
public class Listening01 extends Activity {
// String a = URLEncoder.encode("UTF-8");
// String myUrl = "http://www.ise.kr/OldData/live/20051101-001_Tom.mp3";
// String AUDIO_URL00 = URLEncoder.encode(replaceString, "EUC-KR");
//String AUDIO_URL00 = "http://www.ise.kr/OldData/live/20051101-001_Tom.mp3";
private MediaPlayer mp; // 미디어 플레이어 변수 선언
private int pausePosition;
private Button startBtn, pauseBtn, restartBtn, releaseBtn;
private Button answer01, answer02, answer03, answer04;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listening);
// 시작
startBtn = (Button) findViewById(R.id.startBtn);
startBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
try {
String han = "http://www.ise.kr/OldData/live/20051101-001";
String han1=" Tom의 행동";
//String toUtf_8 = new String(han1.getBytes(), "utf-8");
String encod = URLEncoder.encode(han1, "EUC-KR");
String url = han+han1+".mp3";
Log.i("URL : ", url);
mp = new MediaPlayer();
//playAudio(url);
mp.reset();
try {
mp.setDataSource(url);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mp.prepare();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.start();
Toast.makeText(getApplicationContext(), url,
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
buttonEnabled(true, 1);
}
});
// 일시정지
pauseBtn = (Button) findViewById(R.id.pauseBtn);
pauseBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
pausePosition = mp.getCurrentPosition();
mp.pause();
buttonEnabled(true, 2);
}
});
// 재시작
restartBtn = (Button) findViewById(R.id.restartBtn);
restartBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
mp.start();
buttonEnabled(true, 3);
}
});
// 정지
releaseBtn = (Button) findViewById(R.id.releaseBtn);
releaseBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
mp.release();
buttonEnabled(false, 0);
}
});
buttonEnabled(false, 0);
// /////////////////////////////////////////////////////////
// /////////////////////////////////////////////////////////
answer01 = (Button) findViewById(R.id.answer01);
answer02 = (Button) findViewById(R.id.answer02);
answer03 = (Button) findViewById(R.id.answer03);
answer04 = (Button) findViewById(R.id.answer04);
// 1번문제 정답 버튼 클릭 이벤트 처리
answer01.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.i("MyTag", answer01.getText().toString());
Toast toast = Toast.makeText(getApplicationContext(), "오답입니다.",
Toast.LENGTH_LONG);
toast.show();
}
});
answer02.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.i("MyTag", answer02.getText().toString());
Toast toast = Toast.makeText(getApplicationContext(), "오답입니다.",
Toast.LENGTH_LONG);
toast.show();
}
});
answer03.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.i("MyTag", answer03.getText().toString());
Toast toast = Toast.makeText(getApplicationContext(), "정답입니다.",
Toast.LENGTH_LONG);
toast.show();
// Handler 를 통해 Intent 넘어가는 시간 조절
Handler hd = new Handler();
hd.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
Intent intent = new Intent(Listening01.this,
SpeedListening.class);
startActivity(intent);
finish();
}
}, 2500);
}
});
answer04.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.i("MyTag", answer04.getText().toString());
Toast toast = Toast.makeText(getApplicationContext(), "오답입니다.",
Toast.LENGTH_LONG);
toast.show();
}
}); //
} // end onCreate
public void buttonEnabled(boolean result, int i) {
if (i == 0) {
startBtn.setEnabled(!result);
pauseBtn.setEnabled(result);
restartBtn.setEnabled(result);
releaseBtn.setEnabled(result);
}
if (i == 1) {
startBtn.setEnabled(!result);
pauseBtn.setEnabled(result);
restartBtn.setEnabled(!result);
releaseBtn.setEnabled(result);
}
if (i == 2) {
startBtn.setEnabled(!result);
pauseBtn.setEnabled(!result);
restartBtn.setEnabled(result);
releaseBtn.setEnabled(result);
}
if (i == 3) {
startBtn.setEnabled(!result);
pauseBtn.setEnabled(result);
restartBtn.setEnabled(!result);
releaseBtn.setEnabled(result);
}
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
if (mp != null) {
mp.release();
mp = null;
}
}
// private void playAudio(String url) throws Exception {
// killMediaPlayer();
//
// mp = new MediaPlayer();
// mp.setDataSource(url);
// mp.prepareAsync();
// mp.start();
// }
private void killMediaPlayer() {
if (mp != null) {
try {
mp.release();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
} // end class
Mp3파일이 한글로되어있는 URL을 가져와서 쓰는건데요...
46 ~ 51번째에서 URLEncoder를통해서 한글인코딩?을 했습니다 ㅠㅠ
데이터베이스에서 한글을 영타로 고쳤을때는 아무 문제없이 음원이 실행이 되는데
한글로 실행을 시키면

이런식의 에러가 발생되네요 start called in state 0 도대체 뭔가요 ㅠㅠ 어디서 잘못된건지...
3일동안 이것때문에 골머리썩이고있습니다 ㅎㅎ... 도움좀부탁드릴게요 고수님들 ㅠㅠ