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


[Source] °£´ÜÇÑ MP3 Ç÷¹ÀÌ¾î ¿¹Á¦
8³â Àü
http://www.androidpub.com/?module=file&act=procFileDownload&file_srl=206343&sid=1fb9ba36f4fe9f3df9537406ca7f9ccf

import java.io.File;
import java.io.IOException;

import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;

public class PlayingMp3 extends Activity implements OnClickListener,Runnable, OnCompletionListener
{
  private static final String TAG = "TEST_DEBUG";
  
  private TextView title;
  private TextView time;
  
  private ImageView plus_btn;
  private ImageView minus_btn;
  
  private ImageView rew_btn;
  private ImageView stop_btn;
  private ImageView play_btn;
  private ImageView pause_btn;
  private ImageView ff_btn;
  
  private static MediaPlayer mp;
  private ProgressBar pb;
  //private mp3Thread mp3t;
  private Thread mp3t;
  private int myDuration;
  private AudioManager am;
  
  
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.play);
    
    
    Bundle b = getIntent().getExtras();
    File basepath = Environment.getExternalStorageDirectory();
    String mp3name = b.getString("mp3name");
    
    try {
      title = (TextView)findViewById(R.id.title);
      
      time = (TextView)findViewById(R.id.time);
      
      plus_btn = (ImageView)findViewById(R.id.plus_btn);
      
      minus_btn = (ImageView)findViewById(R.id.minus_btn);
      
      rew_btn = (ImageView)findViewById(R.id.rew_btn);
      
      stop_btn = (ImageView)findViewById(R.id.stop_btn);
      
      play_btn = (ImageView)findViewById(R.id.play_btn);
      
      pause_btn = (ImageView)findViewById(R.id.pause_btn);
      
      ff_btn = (ImageView)findViewById(R.id.ff_btn);
    } catch (Exception e) {
      // TODO: handle exception
      Log.e(TAG,"ERROR: "+e.getMessage());
    }
    
    
    title.setText(mp3name);
    
    plus_btn.setOnClickListener(this);
    minus_btn.setOnClickListener(this);
    
    rew_btn.setOnClickListener(this);
    stop_btn.setOnClickListener(this);
    play_btn.setOnClickListener(this);
    pause_btn.setOnClickListener(this);
    ff_btn.setOnClickListener(this);
    
    mp = new MediaPlayer();
    
    mp.setOnCompletionListener(this);
    
    
    
    pb = new ProgressBar(this);
    try {
      mp.setDataSource(basepath.getPath()+"/"+mp3name);
      mp.prepare();
      //mp.setLooping(false);
      Log.d(TAG,"MP3 FILE ¡¼"+mp3name+"¡½ LOAD COMPLETE.");
    } catch (IllegalArgumentException e) {
      // TODO Auto-generated catch block
      Log.e(TAG,e.getMessage());
    } catch (IllegalStateException e) {
      // TODO Auto-generated catch block
      Log.e(TAG,e.getMessage());
    } catch (IOException e) {
      // TODO Auto-generated catch block
      Log.e(TAG,e.getMessage());
    }
    myDuration = mp.getDuration();
    String mp3time = changeToMinutes(myDuration);
    time.setText(mp3time);
    
    //mp3t = new mp3Thread();
    mp3t = new Thread(this);
    pb = (ProgressBar)findViewById(R.id.ProgressBar01);
    pb.setIndeterminate(false);
    
    am = (AudioManager)getSystemService(AUDIO_SERVICE);
  }
  
  
  
  public void onClick(View view)
  {
    if(view == plus_btn)
    {
      try {
        
        int vol = am.getStreamVolume(AudioManager.STREAM_MUSIC);
        //mp.setVolume(vol, vol);
        am.setStreamVolume(AudioManager.STREAM_MUSIC, vol+1, AudioManager.FLAG_SHOW_UI);
        //Toast.makeText(this, "vol:"+vol, 500).show();
        
      } catch (Exception e) {
        // TODO: handle exception
      }
    }
    else if(view == minus_btn)
    {
      try {
        int vol = am.getStreamVolume(AudioManager.STREAM_MUSIC);
        //mp.setVolume(vol, vol);
        //Toast.makeText(this, "vol:"+vol, 500).show();
        am.setStreamVolume(AudioManager.STREAM_MUSIC, vol-1, AudioManager.FLAG_SHOW_UI);
      } catch (Exception e) {
        // TODO: handle exception
      }
    }
      else if(view == rew_btn)
    {
      try {
        int curSeek = mp.getCurrentPosition();
        if(curSeek>10000)
        {
          mp.seekTo(curSeek-10000);
        }
        else
        {
          mp.seekTo(0);
        }
        Toast.makeText(this, "REW", 500).show();
      } catch (Exception e) {
        // TODO: handle exception
      }
    }
    else if(view == stop_btn)
    {
      try {
        mp.stop();
        mp.prepare();
        mp.seekTo(0);
        mp3t.stop();
        Toast.makeText(this, "STOP", 500).show();
        //mp3t = new Thread(this);
      } catch (Exception e) {
        // TODO: handle exception
      }
      
      Log.d(TAG,"MP3 FILE STOPED.");
    }
    else if(view == play_btn)
    {
      Toast.makeText(this, "PLAY", 500).show();
      try {
        mp.start();
        mp3t.start();
        
      } catch (Exception e) {
        // TODO: handle exception
      }
      
      Log.d(TAG,"MP3 FILE STARTED.");
    }
    else if(view == pause_btn)
    {
      try {
        mp.pause();
        mp3t.stop();
        Toast.makeText(this, "PAUSE", 500).show();
        //mp3t = new Thread(this);
      } catch (Exception e) {
        // TODO: handle exception
      }
      Log.d(TAG,"MP3 FILE PAUSED.");
    }
    else if(view == ff_btn)
    {
      try {
        int curSeek = mp.getCurrentPosition();
        int allSeek = mp.getDuration();
        if(curSeek+10000 < allSeek)
        {
          mp.seekTo(curSeek+10000);
        }
        else
        {
          mp.seekTo(allSeek);
        }
        Toast.makeText(this, "FF", 500).show();
      } catch (Exception e) {
        // TODO: handle exception
      }
      
    }
  }
  
  private String changeToMinutes(int mseconds)
  {
    int min = 0;
    int sec = 0;
    String minStr = "";
    String secStr = "";
    
    min = (int) Math.floor(mseconds/(1000*60));
    sec = (int) Math.floor((mseconds-(1000*60)*min)/1000);
    
    minStr = min < 10 ? "0"+min:""+min;
    secStr = sec < 10 ? "0"+sec:""+sec;
    
    return minStr+":"+secStr;
  }
  private int makePercent(int child,int parent)
  {
    int per = (int) Math.floor((child*100)/parent);
    return per;
  }
  
  private final Handler h = new Handler();
  private boolean done = false;
  
  private final Runnable mp3Run = new Runnable() {
    public void run() {
      int currentDuration = mp.getCurrentPosition();
      //time.setText(makePercent(currentDuration, myDuration));
      //time.setText(currentDuration+"_"+myDuration+"_"+makePercent(currentDuration,myDuration));
      time.setText(changeToMinutes(myDuration-currentDuration));
      pb.setProgress(makePercent(currentDuration, myDuration));
      //Toast.makeText(PlayingMp3.this, makePercent(currentDuration, myDuration)+"", 1000);
    }
  };
  
  @Override
  public void run() {
    // TODO Auto-generated method stub
    while(!done)
    {
      try {
        Thread.sleep(200);
      } catch (Exception e) {
        // TODO: handle exception
      }
      h.post(mp3Run);
    }
  }



  private void sleep(int i) {
    // TODO Auto-generated method stub
    
  }



  @Override
  public void onCompletion(MediaPlayer mp) {
    // TODO Auto-generated method stub
    try {
      mp.stop();
      mp.prepare();
      mp.seekTo(0);
      mp3t.stop();
      Toast.makeText(this, "STOP", 500).show();
    } catch (Exception e) {
      // TODO: handle exception
    }
    
  }

  
}
ÃßõÃßõ : 233 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
1,106
[Source] Åõ¸íÀ©µµ¿ì
1,105
[Source] WebView¸¦ ÀÌ¿ëÇؼ­, ÀÌÀü À¥ÆäÀÌÁö·Î À̵¿
1,104
[Source] ŸÀÌƲ¹ÙÀÇ ±ÛÀÚ»ö º¯°æ
1,103
[Source] Splash Screen
1,102
[Source] À̹ÌÁöÆÄÀÏ ´Ù¿î·Îµå
1,101
[Source] URLÀ» ÅëÇÑ À̹ÌÁö µå·ÎÀ×
1,100
[Source] PopupWindow »ç¿ë¿¹
1,099
[Source] WebView »ç¿ë¿¹ (loadUrl, loadData)
1,098
µ¿ÀûÀ¸·Î LinearLayout È­¸é¿¡ À̹ÌÁö Ãß°¡Çϱâ2
1,097
[Source] µ¿ÀûÀ¸·Î LinearLayout È­¸é¿¡ À̹ÌÁö Ãß°¡Çϱâ
1,096
[Source] Ä«¸Þ¶ó Á¦¾î
[Source] °£´ÜÇÑ MP3 Ç÷¹ÀÌ¾î ¿¹Á¦
1,094
[Source] Æù³» À½¾Ç ÆÄÀÏ ¸ñ·Ï Àоî¿À±â
1,093
[Source] MP3 ÆÄÀÏ ½ÇÇàÇϱâ
1,092
[android] ¹Ìµð¾î Ç÷¹À̾î·Î ¿Àµð¿À ºñµð¿À Àç»ýÇϱâ
1,091
µµ½º À©µµ ³×Æ®¿öÅ© ¸í·É¾î
1,090
[¾Èµå·ÎÀ̵å]ÆÄÀÏ ¿¬°á - Intent setDataAndType(Uri , MimeType)
1,089
±¸±Û °Ë»ö ÆÁ (±¸±Û¸µ, ±¸±Û °Ë»ö¹æ¹ý)
1,088
Windows 8 - Windows ±¸¼º ¿ä¼Ò ÀúÀå¼Ò¿¡¼­ ÆÄÀÏ ¼Õ»ó °Ë»ç
1,087
ÀÎÅÍ³Ý ÀͽºÇ÷η¯ 8 Á¤½Ä ´Ù¿î·Îµå
1,086
À©µµ¿ìÁî Windows 8, 8.1 ÀÇ ¹öÀüº° ei.cfg ÆÄÀÏ »ý¼ºÇÏ´Â ¹ý
1,085
Windows ¼³Ä¡ ÇÁ·Î±×·¥ ¹öÀü ±¸¼º ¹× Á¦Ç° ID ÆÄÀÏ(EI.cfg ¹× PID.txt)
1,084
ÀÌÁß ºÎÆà PC¿¡ ºÎÆà ¸Þ´º ¼³Á¤ ¶Ç´Â º¹±¸
1,083
ÆäÀ̽ººÏ µ¿¿µ»ó°ú À¯Æ©ºê µ¿¿µ»ó ´Ù¿î¹Þ´Â ¹æ¹ý
1,082
Å©·Ò(Chrome)¿¡¼­ DNS Áö¿ì±â - chrome dns flush
1,081
IE10, IE11 ¿¡¼­ Flash °¡ Á¤»óÀûÀ¸·Î ³ªÅ¸³ªÁö ¾ÊÀ» ¶§...
1,080
HTML5 ¾Ö´Ï¸ÞÀÌ¼Ç Á¦ÀÛ ÇÁ·Î±×·¥
1,079
¾µ¸¸ÇÑ jquery Ç÷¯±×ÀÎ
1,078
Windows ´ÜÃàÅ°
1,077
Internet ExplorerÀÇ ÀÛµ¿ÀÌ ÁßÁöµÇ¾ú½À´Ï´Ù-ÇØ°á ¹æ¹ý
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.