 |
|
|  |
¾Èµå·ÎÀ̵忡¼ audio player ½ÇÇàÇϱâ |
|
|
 |
8³â Àü |
package co.avilos.sampleaudioplayer;
import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
/**
* A placeholder fragment containing a simple view.
*/
public class MainActivityFragment extends Fragment {
private MediaPlayer mp; // ¹Ìµð¾î Ç÷¹ÀÌ¾î °´Ã¼
private EditText audioPath;
private CheckBox loopControl;
private Button PlayPause;
private Button Stop;
private Button Load;
public MainActivityFragment() {
}
// Fragment call1
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
// Fragment call2
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
// Fragment call3
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//return inflater.inflate(R.layout.fragment_main, container, false);
View view = inflater.inflate(R.layout.fragment_main, container, false);
// ¿Àµð¿À Ç÷¹À̾ °ü·ÃµÈ EditText, Button·Îµù
audioPath = (EditText)view.findViewById(R.id.srcEdit);
loopControl = (CheckBox)view.findViewById(R.id.setLoop);
PlayPause = (Button)view.findViewById(R.id.playBtn);
Stop = (Button)view.findViewById(R.id.stopBtn);
Load = (Button)view.findViewById(R.id.loadBtn);
// ÆÄÀÏ ºÒ·¯¿À±â ¹öÆ°¿¡ ´ëÇÑ ¸®½º³Êµî·Ï
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.setEnabled(true);
// ·Îµå¹öÆ°À» ºñÈ°¼ºÈ
Load.setEnabled(false);
Toast.makeText(getActivity().getBaseContext(), "ÆÄÀÏ : "+audioPath.getText().toString()+"·Îµå°¡ ¿Ï·áµÇ¾ú½À´Ï´Ù.",Toast.LENGTH_LONG).show();
}
});
// Àç»ý ¹Ýº¹ ¿©ºÎ ¼±Åà ¹öÆ°¿¡ ´ëÇÑ ¸®½º³Ê µî·Ï
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();
if(mp!=null){
mp.release(); // MediaPlayer °´Ã¼¸¦ ReleaseÇÑ´Ù.
mp = null;
}
}
// 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;
}
}
} |
|
̵̧ : 316 |
̵̧
¸ñ·Ï
|
|
|  |
|