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

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;
}
ÃßõÃßõ : 241 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
1,256
[ANDROID & PHP] °£´ÜÇÑ ·Î±×ÀÎ ÀÎÁõ
1,255
ÇöÀç½Ã°£ °¡Á®¿À±â
1,254
ÇÑ ¸Þ¼Òµå·Î Spinner ¿©·¯°³ »ç¿ëÇϱâ
1,253
startActivityForResult °ª ÁÖ°í¹Þ±â
1,252
Ä¿½ºÅÒ ´ÙÀ̾ó·Î±× ¸¸µé±â
1,251
Android ÀÇ Storage Path ¹× ÄÚµå ±¸Çö ±â¼ú
1,250
¾Èµå·ÎÀ̵忡¼­ ¶ç¿ï¼ö ÀÖ´Â ¿©·¯°¡Áö ´ÙÀ̾ó·Î±×
1,249
3°¡Áö ¸Þ¼Òµå·Î ³¡³»´Â ¾Èµå·ÎÀÌµå ¸¶½Ã¸á·Î ±ÇÇÑ È¹µæ
1,248
ACTIVITY¿¡¼­ Ȩ ¹öÆ° CATCH ÇÏ´Â ÇÔ¼ö
1,247
ÇöÀç ½ÇÇàÁßÀÎ ACTIVITY¸¦ ¾Ë¾Æ¿À´Â ÇÔ¼ö
1,246
°­Á¦·Î ȨŰ ´­¸°°Í ó·³
1,245
¾Èµå·ÎÀ̵å ÀÎÅÙÆ® / intent
1,244
¸ð¹ÙÀÏ ½º¸¶Æ®Æù Ư¼ö¹®ÀÚ ¸ðÀ½
1,243
Android/iOS UserAgent ±¸ºÐ ¹× ¸ð¹ÙÀÏÀ¥ÆäÀÌÁö¿¡¼­ ¾Û ¼³Ä¡ ¿©ºÎ È®ÀÎ
1,242
Android À¥ ºê¶ó¿ìÀú ¸µÅ©·Î ¾Û ½ÇÇà ¹æ¹ý
1,241
WebView File Upload
1,240
Get RealPath from Uri
1,239
android.net.conn.CONNECTIVITY_CHANGE
1,238
Glide ¿¡¼­ Gif ·Îµå°¡ ³Ê¹« ´À·Á¿ä.
1,237
ImageView¸¦ Width ±æÀÌ¿¡ ¸ÂÃç Height Á¶Àý
1,236
³»Àå ½ºÇÇÄ¿·Î ¿¬°á Çϱâ
Media Player¸¦ ÀÌ¿ëÇÑ À½¾Ç Àç»ý ¾îÇø®ÄÉÀÌ¼Ç ¸¸µé¾îº¸±â
1,234
DataBinding - findViewById ÀÌÁ¦ ¾È³ç~
1,233
[DataBinding] String Format Àû¿ëÇϱâ
1,232
[DataBinding] ImageView src¿¡ ¿¬µ¿ Çϱâ (ÇÔ¼ö ¿¬°á)
1,231
Scheme ¼³Á¤ ½Ã, ¾ÛÀÌ ¾Èº¸ÀÌ´Â Çö»ó
1,230
WebView¿¡¼­ Javascript Alert âÀÌ º¸ÀÌÁö ¾ÊÀ» ¶§
1,229
À¥ºäÈ­¸é¿¡¼­ ÀÓÀÇ µµ¸ÞÀÎÀ» Á¦¿ÜÇÑ »çÀÌÆ®´Â ¿ÜºÎ ºê¶ó¿ìÀú·Î
1,228
android webview url °¡·Îä±â / ³×ÀÌƼºê¿¡¼­ ÀÛ¾÷ | android
1,227
µð¹ÙÀ̽º ºÎÆýà ¾Û ½ÇÇàÇÏ´Â ¹æ¹ý / ÀçºÎÆà ½Ã ¾îÇà ½ÇÇàÇÏ´Â ¹æ¹ý
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.