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

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;
}
ÃßõÃßõ : 246 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
1,226
android | ²¨Áø È­¸é¿¡¼­ ¾Û ½ÇÇàÇϱâ / Àáµç È­¸é ±ú¿ì±â / Àá±Ý È­¸é À§·Î ½ÇÇà/
1,225
android ÇöÀç WebView¿¡¼­ ¿ÜºÎ ÆäÀÌÁö ºÒ·¯¿À±â / WebView »õâ ¶ç¿ìÁö ¾Ê±â / WebViewClient
1,224
Activity ¸¦ dialog style·Î ¸¸µé±â
1,223
webview ¾Æ·¡ button ³Ö±â
1,222
webview scroll ±â´É ¸·±â(touch´Â µÊ)
1,221
Service µî·ÏÇϱâ
1,220
booting ÈÄ¿¡ ÀÚµ¿À¸·Î ½ÇÇà µÇ´Â app ¸¸µé±â
1,219
[Android] Intent È°¿ë ¿¹½Ã
1,218
Android ¼³Ä¡µÈ ¾îÇà ¸ñ·Ï PackageInfo¸¦ ÅëÇØ °¡Á®¿À±â ¹× ´Ù¸¥ ¾îÇà ½ÇÇà
1,217
[ANDROID(¾Èµå·ÎÀ̵å) ¾Û °³¹ß ±âÃÊ] MEDIAPLAYER À½¾Ç Àç»ýÇϱâ
1,216
[¾Èµå·ÎÀ̵å] ¿ÜºÎ ¾Û ½ÇÇà
1,215
¾Èµå·ÎÀÌµå ¼º´ÉÀ» À§ÇÑ ¼³°è
1,214
ÆÄÀÏ ¾÷·Îµå ¹× ÆĶó¸ÞÅÍ Àü¼Û (sending file & parameters by MultipartEntity / post)
1,213
MediaPlayer °¡·ÎÀÏ ¶§ UI ¼û±â°í Ç®½ºÅ©¸° ¸¸µé±â
1,212
À¥ºä¿¡¼­ html ÅÂ±× ¾ø¾Ö´Â ¹ý(Remove the html tag on loading web page in WebView)
1,211
´Ù¸¥ ¾Û ½ÇÇàÇϰųª Ç÷¹ÀÌ ½ºÅä¾î·Î À̵¿(Launch another app by code)
1,210
À¥ ºä¿¡¼­ ÅÂ±× Á¤º¸ ÃàÃâÇϱâ(Get the information of html tag in WebView of android)
1,209
ÀÚµ¿À¸·Î ¿¡µðÆ®ºä¿¡ Æ÷Ä¿½º µÇ´Â °Í ¸·±â
1,208
addJavascriptInterface ¿À·ù(Android WebView.addJavascriptInterface not Working)
1,207
Ä¿½ºÅÒ Å佺Ʈ ¶ç¿ì±â(To show Custom Toast)
1,206
À¥¿¡¼­ ÆÄÀÏ »çÀÌÁî¿Í ÄÜÅÙÆ®(ÄÁÅÙÃ÷) ŸÀÔ ¾Ë¾Æº¸´Â »ùÇÃÄÚµå
1,205
¾Èµå·ÎÀ̵å ÅؽºÆ® ºä¿¡¼­ Áö¿øÇÏ´Â HTML ű׵é
1,204
ÀÎÅÍ³Ý ÁÖ¼Ò À¯È¿¼º °Ë»ç (regular expression for url)
1,203
SpannableStringÀ¸·Î ÅؽºÆ® ºä¿¡ ¾ÆÀÌÄÜ ³Ö´Â ¹ý
1,202
½ÇÇà°¡´ÉÇÑ ¾Û ¸ñ·Ï (Get launchable apps in android)
1,201
HTMLÀ» ¾Èµå·ÎÀ̵å À¥ºä¿¡ ¸ðµÎ º¸ÀÌ°Ô Çϱâ Using WebView ViewPort in android
1,200
so ÆÄÀÏ ¾Èµå·ÎÀÌµå ½ºÆ©µð¿À¿¡¼­ »ç¿ëÇÏ´Â ¹ý
1,199
[¾Èµå·ÎÀ̵å] È­¸é »çÀÌÁî ±¸Çϱâ
1,198
[¾Èµå·ÎÀ̵å] ¾Èµå·ÎÀÌµå ½ºÆ©µð¿À¿¡¼­ ºôµå ÆÄÀÏ À̸§ ¼öÁ¤Çϱâ.
1,197
¿ÜºÎ ¾Û ½ÇÇà½ÃÅ°±â (launch external app in android)
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.