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

[Android] MediaPlayer À½¾ÇÀç»ý±â ¸¸µé±â
7³â Àü
*  Android¿¡¼­  mp3  Ç÷¹À̾  ¸¸µé¾î  º¾½Ã´Ù.
*  ÀÚ½ÅÀÇ  ÇÁ·ÎÁ§Æ®  raw  Æú´õ¿¡  Àִ  mp3ÆÄÀÏ  ¶Ç´Â  ¿ÜºÎ¿¡Àִ  (http://ÆÄÀÏÀÌÁ¸ÀçÇÏ´ÂÁÖ¼Ò)  À½¾ÇÆÄÀÏÀ»  Àç»ýÇØ  º¾½Ã´Ù.

1.  android¿¡¼­  ¿Àµð¿À  Àç»ýÀº  MediaPlayer  Å¬·¡½º¸¦  ÀÌ¿ëÇÕ´Ï´Ù.
2.  playAudio()  (»ç¿ëÀÚ  Á¤ÀÇ  ¸Þ¼Òµå)  :  Àç»ýÀ»  ´©¸£¸é  MediaPlayer  °´Ã¼¸¦  »ý¼ºÇÏ°í  mp3¸¦  ½ÃÀÛÇÕ´Ï´Ù.
3.  MediaPlayer.stop();  :  mediaPlayer¸¦  Á¤ÁöÇÕ´Ï´Ù  µ¿½Ã¿¡  °´Ã¼¸¦  null·Î  ÃʱâÈ­ÇÕ´Ï´Ù.
4.  playbackPosition  =  mediaPlayer.getCurrentPosition();  :  Á¤Áö(pause())¸¦  ÇϱâÀü¿¡  ÇöÀç  Àç»ýÁßÀΠ À§Ä¡¸¦  ÀúÀåÇÕ´Ï´Ù.
5.  MediaPlayer.pause()  :  ½ÇÇàÁßÀÌ´ø  ¿Àµð¿À¸¦  ÁßÁöÇÕ´Ï´Ù
6.    if(mediaPlayer  !=null  &&  !mediaPlayer.isPlaying()){
                                        mediaPlayer.start();
                                        mediaPlayer.seekTo(playbackPosition);

    ¹Ìµð¾î  Ç÷¹À̾°´Ã¼°¡  Á¸ÀçÇϴµ¥  Àç»ý  ÁßÀÌÁö  ¾ÊÀ¸¸é(=ÀϽÃÁ¤ÁöÀΠ »óÅÂ)  ´Ù½Ã  start()ÇÕ´Ï´Ù.
    À̶§  pause()(ÀϽÃÁ¤Áö)  ÇÒ  ¶§  ÀúÀåÇß´ø  playbackPosition  À§Ä¡¸¦  seekTo()  ¸Þ¼­µå¿¡  ³Ö¾îÁ־  ÇØ´ç  À§Ä¡ºÎÅÍ  Àç½ÃÀÛ  µÇµµ
    ·ÏÇÕ´Ï´Ù.

*  Áß¿ä
  À½¾ÇÆÄÀÏÀ»  ÇÁ·ÎÁ§Æ®¿¡  ³Ö±â  À§Çؼ­´Â  resÆú´õ  -  rawÆú´õ¿¡  ³Ö¾îÁּžߠ ÇÕ´Ï´Ù  (rawÆú´õ´Â  »ý¼ºÇØÁÖ¾î¾ß  ÇÕ´Ï´Ù)
  ±×¸®°í  rawÆú´õ¾È¿¡  mp3ÆÄÀÏÀ»  ³Ö°ÔµÇ¸é  R.java¿¡  rawŬ·¡½º°¡  Çϳª  ¸¸µé¾îÁö°í  ±×  ¾È¿¡  mp3  À妽º°¡  ºÎ¿©µË´Ï´Ù.
  ÇØ´ç  À妽º¸¦  ÀÌ¿ëÇؼ­  À½¾ÇÀ»  ¼øÂ÷ÀûÀ¸·Î  Àç»ýÇÒ  ¼öµµ  ÀÖ½À´Ï´Ù!?

MainActivity.java
package  com.example.audio;
  
import  android.app.Activity;import  android.app.ActivityManager;
import  android.media.MediaPlayer;
import  android.os.Bundle;
import  android.util.Log;
import  android.view.Menu;
import  android.view.MenuItem;
import  android.view.View;
import  android.widget.Button;
import  android.widget.Toast;
  
public  class  MainActivity  extends  Activity  {
  
        
        //³ë·¡³ª  ºñµð¿À  Àç»ýÀÌ  °¡´ÉÇÑ  Ç÷¹À̾º¯¼ö
        private  MediaPlayer  mediaPlayer;
        //ÁßÁöµÉ  ¶§ÀÇ  Àç»ý  À§Ä¡
        private  int  playbackPosition  =0;
        @Override
        protected  void  onCreate(Bundle  savedInstanceState)  {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);
                
                //¹öÆ°  °¡Á®¿À±â/
                Button  start  =  (Button)findViewById(R.id.playBtn);
                Button  pause  =  (Button)findViewById(R.id.pauseBtn);
                Button  restart  =  (Button)findViewById(R.id.restartBtn);
                
                start.setOnClickListener(new  View.OnClickListener()  {
                        
                        @Override
                        public  void  onClick(View  arg0)  {
                                try  {
                                        if(mediaPlayer!=null){
                                                mediaPlayer.stop();
                                                mediaPlayer  =  null;
                                        }
                                        playAudio();
                                }  catch  (Exception  e)  {
                                        //  TODO  Auto-generated  catch  block
                                        e.printStackTrace();
                                }
                                Toast.makeText(MainActivity.this,"Media  Play",Toast.LENGTH_LONG).show();
                        }
                });
                
                pause.setOnClickListener(new  View.OnClickListener()  {
                        
                        @Override
                        public  void  onClick(View  v)  {
                                if(mediaPlayer  !=null){
                                        //ÇöÀç  Àç»ýÀ§Ä¡  ÀúÀå
                                        playbackPosition  =  mediaPlayer.getCurrentPosition();
                                        mediaPlayer.pause();
                                        Toast.makeText(MainActivity.this,"Pause",Toast.LENGTH_LONG).show();;
                                }
                        }
                });
                
                restart.setOnClickListener(new  View.OnClickListener()  {
                        
                        @Override
                        public  void  onClick(View  v)  {
                                if(mediaPlayer  !=null  &&  !mediaPlayer.isPlaying()){
                                        mediaPlayer.start();
                                        mediaPlayer.seekTo(playbackPosition);
                                        Toast.makeText(MainActivity.this,"Restart",Toast.LENGTH_LONG).show();
                                }
                        }
                });
        }
  
        //¹Ìµð¾î¸¦  Àç»ýÇϴ  »ç¿ëÀÚ  Á¤ÀÇ  ¸Þ¼Òµå
        private  void  playAudio()  throws  Exception{
                
                mediaPlayer  =  MediaPlayer.create(this,R.raw.song);
                mediaPlayer.start();
                
                //¿ÜºÎ  ¼­¹ö³ª  ¿ÜºÎ  À½¾ÇÆÄÀÏ  ´Ù¿î·Îµå  ½Ã
                /*mediaPlayer  =  new  MediaPlayer();
                mediaPlayer.setDataSource("http://10.0.2.2:8080/webapp/song/song.mp3");
                //´Ù¿î·Îµå°¡  ´ÙµÉ  ¶§  ±îÁö  ÁغñÇϴ  ¸Þ¼ÒµåÀ̸砠Áغñ°¡  ´ÙµÇ¸é  ±×´ÙÀ½  ´Ü°è·Î  ÁøÇà
                mediaPlayer.prepare();
                mediaPlayer.start();*/
        }
        
        @Override
        //¾×ƼºñƼ°¡  È­¸é¿¡¼­  Á¦°ÅµÉ  ¶§  È£ÃâµÇ´Â  ¸Þ¼­µå
        protected  void  onDestroy(){
                killMediaPlayer();
                super.onDestroy();
        }
        
        /*@Override
        protected  void  onResume(){
                
                super.onResume();
                
                mediaPlayer  =  MediaPlayer.create(this,R.raw.song);
                if(mediaPlayer  !=null  &&  !mediaPlayer.isPlaying()){
                        mediaPlayer.start();
                        mediaPlayer.seekTo(playbackPosition);
                        Toast.makeText(MainActivity.this,"Restart",Toast.LENGTH_LONG).show();
                }
        }*/
        
        private  void  killMediaPlayer(){
                if(mediaPlayer  !=null  &&  !mediaPlayer.isPlaying()){
                        try{
                                mediaPlayer.release();
                        }catch(Exception  e){
                                Log.e("error",e.getMessage());
                        }
                }
        }
        
        
        @Override
        public  boolean  onCreateOptionsMenu(Menu  menu)  {
                //  Inflate  the  menu;  this  adds  items  to  the  action  bar  if  it  is  present.
                getMenuInflater().inflate(R.menu.main,  menu);
                return  true;
        }
  
        @Override
        public  boolean  onOptionsItemSelected(MenuItem  item)  {
                //  Handle  action  bar  item  clicks  here.  The  action  bar  will
                //  automatically  handle  clicks  on  the  Home/Up  button,  so  long
                //  as  you  specify  a  parent  activity  in  AndroidManifest.xml.
                int  id  =  item.getItemId();
                if  (id  ==  R.id.action_settings)  {
                        return  true;
                }
                return  super.onOptionsItemSelected(item);
        }
}

activity_main.xml
<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"  >
  
        <Button  
                android:id="@+id/playBtn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:width="180dp"
                android:layout_gravity="center"
                android:text="start"
                />
        <Button  
                android:id="@+id/pauseBtn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:width="180dp"
                android:layout_gravity="center"
                android:text="pause"
                />
        
        <Button  
                android:id="@+id/restartBtn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:width="180dp"
                android:layout_gravity="center"
                android:text="restart"
                />
  
</LinearLayout>

ÃßõÃßõ : 277 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
1,346
À©µµ¿ì ¼­¹ö 2019 Ãë¾àÁ¡ Á¡°Ë º¸¾È
1,345
À©µµ¿ì ¼­¹ö 2019 Ãë¾àÁ¡ Á¡°Ë º¸¾È (windows server 2019)
1,344
Windows Ãë¾àÁ¡Áø´Ü º¸¾È°¡À̵å¶óÀÎ
1,343
Windows Admin Center¸¦ ÅëÇÑ ¼­¹ö °ü¸®
1,342
À©µµ¿ì ¼­¹ö¿¡¼­ ½ÇÇàµÇ´Â ¼­ºñ½º È®ÀÎ
1,341
Chrome NET::ERR CERT REVOKED ÇØ°á¹æ¹ý
1,340
cmd ¸í·É¾î (¸í·É ÇÁ·ÒÇÁÆ® ¸í·É¾î) ¸ðÀ½
1,339
Windows10 ƯÁ¤ ÇÁ·Î±×·¥(OCS 2007 R2)¿¡¼­ ÷ºÎÆÄÀÏ µå·¡±×¾Øµå·ÓÀÌ ¾È µÇ´Â Çö»ó
1,338
À©µµ¿ì ·Î±×, °ü¸® À̺¥Æ® »èÁ¦
1,337
Ŭ¸° ºÎÆÃ
1,336
Windows ±¸¼º ¿ä¼Ò ÀúÀå¼Ò¿¡¼­ ÆÄÀÏ ¼Õ»ó °Ë»ç
1,335
Windows Defender °Ë»ç ±â·Ï »èÁ¦Çϱâ
1,334
°£´ÜÇÑ À©µµ¿ì 10 Á¤Ç° ÀÎÁõ (Å©·¢ÇÁ·Î±×·¥ ÇÊ¿ä¾øÀ½)
1,333
¿À·ù³­ Æú´õ °­Á¦»èÁ¦ ¹æ¹ý
1,332
Å©·Ò¿¡¼­ Ç÷¡½Ã Ç×»ó Çã¿ëÇϵµ·Ï ¼³Á¤Çϱâ (·¹Áö½ºÆ®¸®) reg ÆÄÀÏ ¸¸µé±â
1,331
GPT µð½ºÅ©¸¦ MBR µð½ºÅ©·Î º¯È¯
1,330
MBR µð½ºÅ©¸¦ GPT µð½ºÅ©·Î º¯È¯
1,329
±¸±Û °Ë»öÀ» 200% È°¿ëÇÏ°Ô ÇØÁÖ´Â °Ë»ö ¸í·É¾î ÃÑÁ¤¸®
1,328
[Jquery] jQuery·Î ¿ìŬ¸¯ ¹æÁö, µå·¡±× ¹æÁö, ¼±Åà ¹æÁö (IE10, ÆÄÀ̾îÆø½º, Å©·Ò È®ÀÎ)
1,327
php »ç¿ëÀÚ Á¢¼ÓIP, ºê¶ó¿ìÀúÁ¤º¸, osÁ¤º¸, http, https Á¢¼ÓÇÁ·ÎÅäÄÝ ¾Ë¾Æ¿À±â
1,326
[PHP] IE ºê¶ó¿ìÀú Á¢¼Ó °ËÃâÇϱâ
1,325
À©µµ¿ì10 ½Ã½ºÅÛ ¿¹¾à ÆÄƼ¼Ç È®ÀÎ ¹× »èÁ¦
1,324
À©µµ¿ì10 º¹±¸ ÆÄƼ¼Ç »èÁ¦ ¹æ¹ý
1,323
À©µµ¿ì10 ºÎÆÃÁö¿¬ °ËÀºÈ­¸é¿¡¼­ ¸îºÐ°£ ¸Ó¹«´Â Çö»ó ÇØ°á¹æ¹ý
1,322
»ï¼º³ëÆ®ºÏ ¹ÙÀÌ¿À½º ÁøÀÔÀÌ ºÒ°¡´ÉÇÑ °æ¿ì ¹ÙÀÌ¿À½º À缳ġ¿Í NVRAM ÃʱâÈ­
1,321
ÀͽºÇ÷η¯(IE)ÀÇ ±¸±Û °Ë»ö°ø±ÞÀÚ Çѱ۷Πº¯°æ ¹æ¹ý
1,320
À©µµ¿ì 10 ±âº» ¾Û »èÁ¦ ¹× º¹±¸
1,319
meta ÅÂ±× http-equiv ¼³Á¤¹æ¹ý°ú Â÷ÀÌÁ¡
1,318
±¸±Û(Google)°Ë»ö¿¡¼­ °í±Þ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÏ¿© ¸¹Àº Á¤º¸¸¦ ¾ò´Â ¹æ¹ý
1,317
ÇÁ·Î±×·¥ ¾øÀÌ Çϵåµð½ºÅ© º¹»ç ¹× ¹é¾÷Çϱâ
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.