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

[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>

ÃßõÃßõ : 285 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
1,316
Windows7 ¾÷µ¥ÀÌÆ® ±â·Ï »èÁ¦¹æ¹ý
1,315
Æ÷Åä¼¥ psd ÆÄÀÏ ¿¬°á ·¹Áö½ºÆ®¸®(registry) ÆíÁý
1,314
À©µµ 10 ÃֽŠ¾÷µ¥ÀÌÆ® ÈÄ ÀÎÅÍ³Ý ¼ÓµµÀÇ ÀúÇÏ°¡ ¹ß»ýÇÒ ¶§ Á¶Ä¡ »çÇ×
1,313
Autotuning level ÇØÁ¦ (À©µµ¿ìºñ½ºÅ¸ ÀÌ»ó À©µµ¿ì)ÀÎÅÍ³Ý ¼Óµµ ºü¸£°Ô ÇÏ´Â ¹æ¹ý
1,312
À©µµ¿ì¿¡¼­ ƯÁ¤ÇÁ·Î¼¼½º¸¦ ÀÏ°ý Á¾·áÇϴ¹ý
1,311
MediaPlayer Ŭ·¡½º »ç¿ë¹ý
1,310
¾Èµå·ÎÀ̵忡¼­ audio player ½ÇÇàÇϱâ
[Android] MediaPlayer À½¾ÇÀç»ý±â ¸¸µé±â
1,308
Eclipse¿Í Android NDK ¿¬µ¿Çϱâ
1,307
Android Sliding Drawer Functionality ¾Èµå·ÎÀÌµå ½½¶óÀ̵ù µå·Î¿ì ¿¹Á¦ sample
1,306
Android Speech To Text
1,305
Android WebPageLoader with progress-bar
1,304
Android Text To Speech(TTS)
1,303
Android Playing Audio from a web url
1,302
Button height different from background height in Android image design
1,301
Android Getting Started with Material Design
1,300
Using toast inside timertask perfect
1,299
³×Æ®¿öÅ© »óÅ [Android]
1,298
Webview source [Android]
1,297
°øÀ¯ Intent [Android]
1,296
intent uri ¸ðÀ½ [Android]
1,295
http requestWebViewClient [Android]
1,294
ij½Ã »èÁ¦
1,293
ij½Ã Áö¿ì±â [Android]
1,292
¹Ù·ÎÇ®¾î(¼öÇÐ ¹®Á¦ ÁúÀÇÀÀ´ä SNS) ¿¡ »ç¿ëµÈ ¿ÀǼҽº ¶óÀ̺귯¸® [Android]
1,291
Webviw [Android]
1,290
¿ÀǼҽº ¶óÀ̺귯¸® ¸ðÀ½ [Android]
1,289
Android webview °³¹ß½Ã ¾Ë¾ÆµÖ¾ß ÇÒ °Íµé [Android]
1,288
webview µ¿¿µ»ó Àç»ý [Android]
1,287
[Android] Webview 404 ¿¡·¯ ó¸®
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.