ȸ¿ø°¡ÀԡžÆÀ̵ð/ºñ¹øã±â
ȨÀ¸·Î

Media Player¸¦ ÀÌ¿ëÇÑ À½¾Ç Àç»ý ¾îÇø®ÄÉÀÌ¼Ç ¸¸µé¾îº¸±â
7³â Àü
¼Ò½º ÆÄÀÏÀ» º¸¸é¼­ ¼³¸íÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù.
package com.androidhuman.AudioPlayer;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;
import android.media.MediaPlayer;

public class AudioPlayer extends Activity {
    private MediaPlayer mp;
// MediaPlayer °´Ã¼ÀÔ´Ï´Ù.
    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        final EditText audioPath = (EditText)findViewById(R.id.srcEdt);
        final CheckBox loopControl = (CheckBox)findViewById(R.id.setLoop);
        final Button PlayPause = (Button)findViewById(R.id.PlayPause);
        final Button Stop = (Button)findViewById(R.id.Stop);
        final Button Load = (Button)findViewById(R.id.load);
        
        
// ÆÄÀÏ ºÒ·¯¿À±â ¹öÆ°¿¡ ´ëÇÑ ¸®½º³Ê
        Load.setOnClickListener(new OnClickListener(){
            public void onClick(View v){
                if(!loadAudio(audioPath.getText().toString())){
                    
// ¿Àµð¿À ÆÄÀÏÀ» ºÒ·¯¿É´Ï´Ù.
                    Toast
// ¿Àµð¿À ÆÄÀÏ ºÒ·¯¿À±â¿¡ ½ÇÆÐÇÑ °æ¿ì
                    .makeText(getApplicationContext(), "ÆÄÀÏ ºÒ·¯¿À±â¿¡ ½ÇÆÐÇß½À´Ï´Ù.", Toast.LENGTH_LONG)
                    .show();
                    return;
                }
                audioPath.setEnabled(false);
// ÆÄÀÏ Path ÀԷ¶õÀ» ºñÈ°¼ºÈ­ÇÕ´Ï´Ù.
                PlayPause.setEnabled(true);
                Stop.setEnabled(true);
                loopControl.setEnabled(true);
                Load.setEnabled(false);
                
                Toast
                .makeText(getApplicationContext(), "ÆÄÀÏ : " + audioPath.getText().toString() +" ·Îµå°¡ ¿Ï·áµÇ¾ú½À´Ï´Ù.", Toast.LENGTH_LONG)
                .show();
            }
        });
        
        
// Àç»ý ¹Ýº¹ ¿©ºÎ ¼±Åà ¹öÆ°¿¡ ´ëÇÑ ¸®½º³Ê
        loopControl.setOnClickListener(new OnClickListener(){
            public void onClick(View v){
                if(loopControl.isChecked()){
// üũ¹Ú½º¿¡ üũÇϸé
                    mp.setLooping(true);
// ¹Ýº¹À» È°¼ºÈ­ÇÕ´Ï´Ù.
                    Toast
                    .makeText(getApplicationContext(), "¹Ýº¹ È°¼ºÈ­µÊ", Toast.LENGTH_SHORT)
                    .show();
                }else{
                    mp.setLooping(false);
// ¹Ýº¹À» ºñÈ°¼ºÈ­ÇÕ´Ï´Ù.
                    Toast
                    .makeText(getApplicationContext(), "¹Ýº¹ ÇØÁ¦µÊ", Toast.LENGTH_SHORT)
                    .show();
                }
            }
        });
        
        
// Àç»ý/ÀϽÃÁ¤Áö ¹öÆ°¿¡ ´ëÇÑ ¸®½º³Ê
        PlayPause.setOnClickListener(new OnClickListener(){
            public void onClick(View v){
                if(PlayPauseAudio()==0){
// Àç»ý½Ã
                    PlayPause.setText("ÀϽÃÁ¤Áö");
// ¹öÆ°ÀÇ Ä¸¼ÇÀ» ÀϽÃÁ¤Áö·Î º¯°æÇÕ´Ï´Ù.
                }else{
// ÀϽÃÁ¤Áö½Ã
                    PlayPause.setText("Àç»ý");
// ¹öÆ°ÀÇ Ä¸¼ÇÀ» Àç»ýÀ¸·Î º¯°æÇÕ´Ï´Ù.
                }
            }
            
        });
        
        
// Á¤Áö¹öÆ°¿¡ ´ëÇÑ ¸®½º³Ê
        Stop.setOnClickListener(new OnClickListener(){
// Á¤Áö¹öÆ°À» ´©¸£¸é
            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);
            }
        });
                
        }
    
    private int PlayPauseAudio(){
        if(!mp.isPlaying()){
// Àç»ýÁßÀÌ ¾Æ´Ï¶ó¸é
            mp.start();
// ÆÄÀÏÀ» Àç»ýÇÕ´Ï´Ù.
            Toast.makeText(getApplicationContext(), "Àç»ý", Toast.LENGTH_SHORT).show();
            return 0;
            
        }else{
// Àç»ýÁßÀ̶ó¸é
            mp.pause();
// ÀϽÃÁ¤ÁöÇÕ´Ï´Ù.
            Toast.makeText(getApplicationContext(), "ÀϽà Á¤ÁöµÊ", 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(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
            return false;
// false¸¦ ¹ÝȯÇÕ´Ï´Ù.
        }
    }
    
        
    public void onDestroy(){
// ¾×ƼºñƼ°¡ Á¾·áµÉ ¶§
        super.onDestroy();
        if(mp != null)
            mp.release();
// MediaPlayer °´Ã¼¸¦ ReleaseÇÕ´Ï´Ù.
        mp = null;
    }
}

Á» ¼Ò½º°¡ ±æ¾îº¸ÀÌÁÒ? ÇÏÁö¸¸ º°·Î ¾î·Á¿ï °Ç ¾ø½À´Ï´Ù.
±æ¾îÁø °Ç Á¦°¡ ±ÞÇÏ°Ô Â¥´À¶ó È¿À²¼º ÀÌ·±°É °í·ÁÇÏÁö ¾Ê¾Æ¼­ ±×·¡¿ä~~
import android.media.MediaPlayer;

ÀÏ´Ü, MediaPlayer °´Ã¼¸¦ »ç¿ëÇÏ·Á¸é À§¿Í °°ÀÌ import ¸¦ ÇØÁÖ¼Å¾ß ÇÕ´Ï´Ù.
Àú °´Ã¼¿¡ ¸ÖƼ¹Ìµð¾î ÆÄÀϵéÀ» ºÒ·¯¿À°Ô µÇ´Â °ÍÀÌÁÒ~

¹Ìµð¾îÇ÷¹ÀÌ¾î °´Ã¼(¿Àµð¿À)ÀÇ »ç¿ë ´Ü°è´Â ´ÙÀ½°ú °°½À´Ï´Ù.

1. °´Ã¼ »ý¼º
2. setDataSource()¸¦ ÀÌ¿ëÇÏ¿© ÆÄÀÏÀ» ºÒ·¯¿È (´Ù¸¥ ÀÛ¾÷À» Çϱâ Àü¿¡ ÀÌ °úÁ¤ÀÌ ²À ÇÊ¿äÇÕ´Ï´Ù! ¾ÈÇÏ¸é ¿¡·¯..)
3. prepare()¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ¿© »ç¿ëÇÒ Áغñ¸¦ ÇÔ
4. start() ¸Þ¼Òµå·Î Àç»ý ½ÃÀÛ, ÀÌÈÄ ¹Ìµð¾î Ç÷¹À̾îÀÇ °¢Á¾ ¸Þ¼Òµå·Î Àç»ý ÄÁÆ®·Ñ
5. Àç»ýÀÌ ³¡³ª¸é ¹Ìµð¾îÇ÷¹ÀÌ¾î °´Ã¼¸¦ ¼Ò¸ê½ÃÅ´ (Garbage collection)


°´Ã¼¸¦ »ý¼ºÇÏ´Â °úÁ¤ ¹× setDataSource()¸¦ ÅëÇØ Àç»ý Áغñ¸¦ ÇÏ´Â °úÁ¤À» º¸°Ú½À´Ï´Ù.
private boolean loadAudio(String path){
// ¿Àµð¿À ÆÄÀÏÀ» ·ÎµåÇÕ´Ï´Ù.
    mp = new MediaPlayer();
// MediaPlayer °´Ã¼¸¦ »ý¼ºÇÕ´Ï´Ù.
    try{
        mp.setDataSource(path);
        mp.prepare();
// ÆÄÀÏÀ» ÁغñÇÕ´Ï´Ù.
        return true;
    }catch(Exception e){
// ¿Àµð¿À ÆÄÀÏ ·Îµå¿¡ ½ÇÆÐÇϸé
        Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
        return false;
// false¸¦ ¹ÝȯÇÕ´Ï´Ù.
    }
}

À§¿Í °°ÀÌ path¸¦ ÀÎÀÚ·Î ¹Þ¾Æ ¿Àµð¿À ÆÄÀÏÀ» ºÒ·¯¿À´Â °úÁ¤À» º¼ ¼ö ÀÖ½À´Ï´Ù. ÆÄÀÏÀÇ path¿¡ °üÇÑ ¼³¸íÀº ÀÌÀü Æ÷½ºÆ®(2009/04/07 - [¾Èµå·ÎÀ̵å À̾߱â/ÀÌ°Å, ¾Ë°íÀÖ´Ï?] - ¾Èµå·ÎÀ̵忡¼­ Àç»ýÇÒ ¼ö ÀÖ´Â ¸ÖƼ¹Ìµð¾î ÆÄÀÏ Çü½Äµé & ÆÄÀÏ »ç¿ë¹ý)À» Âü°íÇϼ¼¿ä~

path ÀÎÀÚ¸¦ ÅëÇØ ¹Þ¾Æ¿Â °ÍÀ» Åä´ë·Î setDataSource()¸Þ¼Òµå¿¡¼­ °´Ã¼¿¡ ºÒ·¯¿Ã ÆÄÀÏÀ» ÁöÁ¤ÇØÁÖ°Ô µË´Ï´Ù. ÀÌ ¶§, ¿¡·¯°¡ ¹ß»ýÇÏ°Ô µÇ¸é ÀûÀýÈ÷ ¿¹¿Ü 󸮸¦ ÇØ ÁÖ½Ã¸é µË´Ï´Ù. Àú´Â ¿¡·¯ ¸Þ½ÃÁö¸¦ Toast¸¦ ÅëÇØ »ç¿ëÀÚ¿¡°Ô º¸¿©ÁÖµµ·Ï ÇÏ¿´½À´Ï´Ù.
// ÆÄÀÏ ºÒ·¯¿À±â ¹öÆ°¿¡ ´ëÇÑ ¸®½º³Ê
Load.setOnClickListener(new OnClickListener(){
    public void onClick(View v){
        if(!loadAudio(audioPath.getText().toString())){
            
// ¿Àµð¿À ÆÄÀÏÀ» ºÒ·¯¿É´Ï´Ù.
            Toast
// ¿Àµð¿À ÆÄÀÏ ºÒ·¯¿À±â¿¡ ½ÇÆÐÇÑ °æ¿ì
            .makeText(getApplicationContext(), "ÆÄÀÏ ºÒ·¯¿À±â¿¡ ½ÇÆÐÇß½À´Ï´Ù.", Toast.LENGTH_LONG)
            .show();
            return;
        }
        audioPath.setEnabled(false);
// ÆÄÀÏ Path ÀԷ¶õÀ» ºñÈ°¼ºÈ­ÇÕ´Ï´Ù.
        PlayPause.setEnabled(true);
        Stop.setEnabled(true);
        loopControl.setEnabled(true);
        Load.setEnabled(false);
        
        Toast
        .makeText(getApplicationContext(), "ÆÄÀÏ : " + audioPath.getText().toString() +" ·Îµå°¡ ¿Ï·áµÇ¾ú½À´Ï´Ù.", Toast.LENGTH_LONG)
        .show();
    }
});

ÆÄÀÏ ºÒ·¯¿À±â ¹öÆ°À» ´©¸£¸é, À§¿¡¼­ ºÃ´ø loadAudio()¸Þ¼Òµå¸¦ È£ÃâÇÏ°í, ±× °á°ú¿¡ µû¶ó¼­ ¿¡·¯ ¸Þ½ÃÁö¸¦ Ç¥½ÃÇÒ °ÍÀÎÁö, ÆÄÀÏ Àç»ý Áغñ¸¦ ÇÏ´ÂÁö °áÁ¤ÇÏ°Ô µË´Ï´Ù.

±×·³, ´ÙÀ½À¸·Î Àç»ýÇÏ´Â °úÁ¤À» º¸µµ·Ï ÇÏÁÒ.
// Àç»ý/ÀϽÃÁ¤Áö ¹öÆ°¿¡ ´ëÇÑ ¸®½º³Ê
PlayPause.setOnClickListener(new OnClickListener(){
    public void onClick(View v){
        if(PlayPauseAudio()==0){
// Àç»ý½Ã
            PlayPause.setText("ÀϽÃÁ¤Áö");
// ¹öÆ°ÀÇ Ä¸¼ÇÀ» ÀϽÃÁ¤Áö·Î º¯°æÇÕ´Ï´Ù.
        }else{
// ÀϽÃÁ¤Áö½Ã
            PlayPause.setText("Àç»ý");
// ¹öÆ°ÀÇ Ä¸¼ÇÀ» Àç»ýÀ¸·Î º¯°æÇÕ´Ï´Ù.
        }
    }
    
});

Àú´Â ÀÌ ¾îÇø®ÄÉÀ̼ǿ¡¼­ Àç»ý ¹öÆ°À» ´©¸£¸é ÀϽÃÁ¤Áö ±â´Éµµ ¼öÇàÇÒ ¼ö ÀÖ°Ô²û ±¸ÇöÇÏ¿©¼­ ¹öÆ°À» ´©¸¦ ¶§¸¶´Ù »óÅ¿¡ µû¶ó¼­ ·¹À̺íÀÌ ¹Ù²îµµ·Ï ÇÏ¿´½À´Ï´Ù. ½ÇÁúÀûÀÎ Àç»ý ÄÁÆ®·Ñ¿¡ ´ëÇÑ ¼Ò½º´Â ´ÙÀ½°ú °°½À´Ï´Ù.
private int PlayPauseAudio(){
    if(!mp.isPlaying()){
// Àç»ýÁßÀÌ ¾Æ´Ï¶ó¸é
        mp.start();
// ÆÄÀÏÀ» Àç»ýÇÕ´Ï´Ù.
        Toast.makeText(getApplicationContext(), "Àç»ý", Toast.LENGTH_SHORT).show();
        return 0;
        
    }else{
// Àç»ýÁßÀ̶ó¸é
        mp.pause();
// ÀϽÃÁ¤ÁöÇÕ´Ï´Ù.
        Toast.makeText(getApplicationContext(), "ÀϽà Á¤ÁöµÊ", Toast.LENGTH_SHORT).show();
        return 1;
    }
    
    
}

Àç»ý/ ÀϽÃÁ¤Áö ¿©ºÎ´Â MediaPlayer°´Ã¼ÀÇ isPlaying() ¸Þ¼Òµå¸¦ ÅëÇØ ±¸ÇöÇÏ¿´½À´Ï´Ù. Àç»ýÁßÀÏ°æ¿ì isPlaying() ¸Þ¼Òµå´Â true¸¦, ¾Æ´Ò °æ¿ì false¸¦ ¹ÝȯÇÏ°Ô µË´Ï´Ù.

Á¤Áö ¹öÆ°À» ´©¸£¸é, Á¤Áö¸¦ ¼öÇàÇÏ°í ¾îÇø®ÄÉÀ̼ÇÀÇ »óŸ¦ Ãʱâ»óÅ·ΠµÇµÉ¸³´Ï´Ù.
// Á¤Áö¹öÆ°¿¡ ´ëÇÑ ¸®½º³Ê
Stop.setOnClickListener(new OnClickListener(){
// Á¤Áö¹öÆ°À» ´©¸£¸é
    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);
    }
});

¸¶Áö¸·À¸·Î, ¾×ƼºñƼ°¡ Á¾·áµÉ ¶§ ¹Ìµð¾îÇ÷¹ÀÌ¾î °´Ã¼¸¦ ¹ÝȯÇÏ°Ô µË´Ï´Ù.
public void onDestroy(){
// ¾×ƼºñƼ°¡ Á¾·áµÉ ¶§
    super.onDestroy();
    if(mp != null)
        mp.release();
// MediaPlayer °´Ã¼¸¦ ReleaseÇÕ´Ï´Ù.
    mp = null;
}
ÃßõÃßõ : 245 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
1,286
[Android] webview ssl ¹®Á¦
1,285
[Android] Webview url ¼û±â±â
1,284
[Android] AlarmManager ÀÏÁ¤½Ã°£ À̺¥Æ® ½ÇÇà
1,283
¾Èµå·ÎÀÌµå ¿ÀǼҽº ³¡ÆÇ
1,282
android studio DefaultHttpClient, HttpClient import ¿¡·¯
1,281
[Android] Webview ¸Þ¼Òµå
1,280
¾Èµå·ÎÀ̵å: ¼­ºñ½º Service ¿¹Á¦
1,279
[Android] Effect (¿Àµð¿À¸ðµå) º§¸ðµå, Áøµ¿¸ðµå, ¹«À½¸ðµå½Ã µ¿ÀÛó¸®
1,278
Mediaplayer ·Î ÁöÁ¤µÇ¾îÀÖ´Â º§¼Ò¸® Àç»ýÇϱâ
1,277
Android Intent - ¾Èµå·ÎÀ̵å ÀÎÅÙÆ®
1,276
[Android Intent Useage] ¾Èµå·ÎÀ̵å Intent »ç¿ë ¹æ¹ý
1,275
SharedPreferences¶õ?
1,274
ÀÎÅÙÆ®(Intent)·Î µ¥ÀÌÅÍ Àü´Þ(putExtra, getExtras)
1,273
¾Èµå·ÎÀÌµå ±¸±Û ¾Öµå¸÷ Àü¸é±¤°í ³Ö±â
1,272
¾Èµå·ÎÀÌµå µÚ·Î°¡±â ¹öÆ° ´õºíŬ¸¯Çؼ­ ¾Û Á¾·áÇϱâ
1,271
¾Ë¸²Ã¢ ¶ç¿ì±â(Multi Choice, Single Choice)
1,270
Android SharedPreferences »ç¿ë ¿¹Á¦
1,269
¾Èµå·ÎÀ̵å PHP GET ¹æ½Ä Åë½Å¿¡¼­ ÇÑ±Û ±úÁü(?) ÇØ°á
1,268
¾Èµå·ÎÀÌµå ¾Û ÃÖÃÊ ½ÇÇà½Ã ¹ÙÅÁÈ­¸é¿¡ ¾ÆÀÌÄÜ(Shortcut) »ý¼ºÇϱâ
1,267
ÇöÀç½Ã°£(Local Time) °¡Á®¿À±â
1,266
ÆÄÀÏ »ý¼º ¹× ÀúÀå
1,265
µÚ·Î°¡±â(Back ¹öÆ°) µÎ¹ø ´­·¯ ¾Û Á¾·áÇϱâ
1,264
Custom ListView (Ä¿½ºÅÒ ¸®½ºÆ®ºä) Footer¸¦ ÀÌ¿ëÇÑ ´õº¸±â ±¸Çö
1,263
CheckBox(üũ¹Ú½º) À̹ÌÁö º¯°æÇϱâ
1,262
C¼­¹ö¿Í ¼ÒÄÏÅë½Å
1,261
½½¶óÀ̵ù ¸Þ´º - SimpleSideDrawer
1,260
selector·Î ¹öÆ° ¾×¼Ç À̹ÌÁö º¯°æ
1,259
À̹ÌÁö¹öÆ° »çÀÌÁî Á¶Àý
1,258
XmlPullParser °£´ÜÇÑ »ç¿ë¹ý
1,257
¹öÆ°»çÀÌ ¿©¹é ¾ø¾Ö±â
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.