// 파일 불러오기 버튼에 대한 리스너등록
Load.setOnClickListener(new View.OnClickListener() {
// Load버튼을 클릭시
@Override
public void onClick(View v) {
// 오디오 파일 불러오기
if (!loadAudio(audioPath.getText().toString())) {
// 오디오 파일 로딩에 실패시
Toast.makeText(getActivity().getBaseContext(), "파일 불러오기에 실패했습니다.", Toast.LENGTH_LONG).show();
return;
}
// 파일 Path 입력란을 비활성화한다.
audioPath.setEnabled(false);
// 시작, 정지 버튼 활성화
PlayPause.setEnabled(true);
Stop.setEnabled(true);
// 재생 반복 여부 선택 버튼에 대한 리스너 등록
loopControl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(loopControl.isChecked()){
// 체크박스를 체크하면 반복을 활성화
mp.setLooping(true);
Toast.makeText(getActivity().getBaseContext(), "반복 활성화됨", Toast.LENGTH_SHORT).show();
}else{
// 반복을 비활성화한다.
mp.setLooping(false);
Toast.makeText(getActivity().getBaseContext(),"반복 해제됨", Toast.LENGTH_SHORT).show();
}
}
});
// 재생/일시정지 버튼에 대한 리스너 등록
PlayPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(PlayPauseAudio() == 0){ // 재생시
PlayPause.setText("일시정지"); // 버튼의 캡션을 일시정지로 변경
}else{ // 일시정지
PlayPause.setText("재생"); // 버튼의 캡션을 재생으로 변경
}
}
});
// 정지버튼에 대한 리스너 등록
Stop.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
mp.stop(); // 정지
// 정지가 되면, Load버튼을 눌러 파일을 prepare 해야 하므로, 설정값들을 초기화 한다.
audioPath.setEnabled(true); // 비활성화 되었던 입력값을 활성화
PlayPause.setText("재생");
loopControl.setChecked(false);
PlayPause.setEnabled(false);
Stop.setEnabled(false);
loopControl.setEnabled(false);
Load.setEnabled(true);
}
});
return view;
}
// Fragment call4
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
// Fragment call5
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
// Fragment call6
@Override
public void onStart() {
super.onStart();
}
// Fragment call7
@Override
public void onResume() {
super.onResume();
}
// Fragment call8
@Override
public void onPause() {
super.onPause();
}
// Fragment call9
@Override
public void onStop() {
super.onStop();
}
// Fragment call10
@Override
public void onDestroyView() {
super.onDestroyView();
}
// Fragment call11
@Override
public void onDestroy() {
super.onDestroy();
// Fragment call12
@Override
public void onDetach() {
super.onDetach();
}
// Play & Pause 상태 변경
private int PlayPauseAudio(){
if(!mp.isPlaying()){ // 재생중이 아니라면
mp.start(); // 파일을 재생한다.
Toast.makeText(getActivity().getBaseContext(), "재생", Toast.LENGTH_SHORT).show();
return 0;
}else{ // 재생중이라면
mp.pause(); // 일시정지
Toast.makeText(getActivity().getBaseContext(),"일시정지", Toast.LENGTH_SHORT).show();
return 1;
}
}
// 오디오 파일 로드
private boolean loadAudio(String path){ // 오디오 파일 로딩
mp = new MediaPlayer(); // MediaPlayer 객체 생성
try{
mp.setDataSource(path);
mp.prepare(); // 파일을 준비
return true;
}catch(Exception e){ // 오디오 파일 로딩에 실패시
Toast.makeText(getActivity().getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
return false;
}
}
}