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

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

  
}
ÃßõÃßõ : 231 Ãßõ ¸ñ·Ï
¹øÈ£ Á¦¸ñ
1,076
Jscript 5.8 ¿ë º¸¾È ¾÷µ¥ÀÌÆ®(KB971961) ´Ù¿î·Îµå ¸µÅ© ÀÔ´Ï´Ù
1,075
Internet Explorer Ãß°¡ ±â´É ¹®Á¦ ÇØ°á
1,074
Internet Explorer ±âº» ¼³Á¤À» º¹±¸ (°³ÀÎ ¼³Á¤ »èÁ¦ ¿É¼ÇÀ» »ç¿ë)
1,073
½ºÅ¸ÀϽÃÆ®(css)¿¡¼­ A:link, A:visited, A:active, A:hover ¼³¸í
1,072
META TagÀÇ Á¾·ù¿Í »ç¿ë¹æ¹ý
1,071
ȨÆäÀÌÁö ·Îº¿ ¼³Á¤ ¹æ¹ý
1,070
·¹ÀÌ¾î »ó´Ü ¹«Á¶°Ç°íÁ¤
1,069
[jquery] alert¹Ú½º ¸»°í ·¹ÀÌ¾î ¹Ú½º¸¦ ¶ç¿öº¸¼¼¿ä
1,068
À©µµ¿ì ¾ÏÈ£ ºÐ½ÇÇßÀ»¶§ ..
1,067
[Windows] ÀÛ¾÷°ü¸®ÀÚ ½ÇÇà ÆÄÀÏ ÃÑÁ¤¸®
1,066
Áö±Ý À©µµ¿ì 7 â ¸ð¾çÀÌ À©µµ¿ì °íÀüÀ¸·Î ³ª¿Ã¶§..
1,065
°£´ÜÇÑ ¸í·É¾î·Î Á»ºñ PC È®ÀÎÇϱâ
1,064
Internet Explorer ȣȯ¼º ·»´õ¸µ ¸ðµå·Î º¸±â
1,063
div ·¹À̾ƿô Àâ±â!
1,062
Çϵåµð½ºÅ© ÆÄƼ¼Ç ¼û±â±â
1,061
¹ÙÀÌ¿À½º ºÎÆ® ÇÁ·Î¼¼½º
1,060
À©µµ¿ì XPÀÇ ºÎÆà °úÁ¤
1,059
ÇÁ·Î½ÃÀú ½ÃÀÛ ÁöÁ¡ _except_handler4_commonÀ»(¸¦) DLL msvcrt.dll¿¡¼­ ãÀ» ¼ö ¾ø½À´Ï´Ù
1,058
È°¼ºÆÄƼ¼ÇÀ» ºñÈ°¼ºÆÄƼ¼ÇÀ¸·Î º¯°æÇÏ´Â ¹æ¹ý
1,057
windows XP ÀÚµ¿½ÇÇà ²ô±â
1,056
À¯ÇØÇÑ »çÀÌÆ® ±¤°í¸Þ¼¼Áö°¡ ³ª¿ÀÁö ¾Ê°Ô Çϱâ
1,055
Á¦°¡ Âü°í·Î ÇÏ´Â ¹èÄ¡ÆÄÀÏ ÀÛ¼º¹ýµîÀÔ´Ï´Ù
1,054
À©µµ¿ì XP °øÀ¯Æú´õ ¾ÏÈ£°É±â
1,053
¹ÙÅÁÈ­¸éÀ» Dµå¶óÀ̺ê·Î!~!!!!!!
1,052
½Ã½ºÅÛÆÄÀÏ È®ÀåÀÚ!!
1,051
À¥Ç¥ÁØÀ» À§ÇÑ <iframe></iframe>
1,050
[CSS/À¥Ç¥ÁØ] DOCTYPE ¼±¾ð
1,049
CSS Àý´ë À§Ä¡¸¦ »ç¿ëÇÑ ÇÁ·¹ÀÓ È¿°ú
1,048
Recommended Doctype Declarations to use in your Web document
1,047
CSS ·¹À̾ƿô ÅÛÇø´ »çÀÌÆ®
¸ñ·Ï
¹ÂÁ÷Æ®·ÎÆ® ºÎ»ê±¤¿ª½Ã ºÎ»êÁø±¸ °¡¾ßµ¿ ¤Ó °³ÀÎÁ¤º¸Ãë±Þ¹æħ
Copyright ¨Ï musictrot All rights reserved.