안드로이드 개발 질문/답변
(글 수 45,052)
mp3재생을 하면서
밑에 seekbar를 이용해서 움직이는 대로 mp3로 움직여서(? 이동해서..)재생 되게 하고 있는데
음악이 시작 되면 seekbar도 같이 움직여야 되는데 이게 안되네요,..... ㅠ
이것만 하면 완성인데.. seekbar가 멈춰 있네요;;;ㅠ
package dku.android.dankook;
import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.SeekBar; import android.widget.TextView;
public class dankook extends Activity implements OnClickListener {
MediaPlayer mp;
TextView tv;
Button bt, bt1 ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// ID값 넣어줌. tv = (TextView)findViewById(R.id.time); bt = (Button)findViewById(R.id.but); bt.setOnClickListener(this); bt1 = (Button)findViewById(R.id.but1); bt1.setOnClickListener(this); m_sb = (SeekBar)findViewById(R.id.SeekBar01); m_textProgress = (TextView)findViewById(R.id.myTextView); m_textTracking = (TextView)findViewById(R.id.myTextView2); mp = MediaPlayer.create(this, R.raw.rihanna);
//SeekBar 배경색깔. m_sb.setBackgroundColor(0xffff5050); int aa = mp.getDuration(); //seekbar 에 대한 change 이벤트처리 String mp3time = changeToMinutes(aa); tv.setText(mp3time); m_sb.setMax(mp.getDuration()); m_sb.setOnSeekBarChangeListener(listenGenerator); m_sb.incrementProgressBy(1); }
//thumb 에 대한 메세지이며 아래의 함수들은 자동으로 override 되어 생김.
private SeekBar.OnSeekBarChangeListener listenGenerator
= new SeekBar.OnSeekBarChangeListener()
{
@Override
//thumb 을 놓았을때 날라오는 메세지
public void onStopTrackingTouch(SeekBar seekBar)
{
m_textTracking.setText(new StringBuilder()
.append("Tracking Stop"));
}
@Override
//thumb 을 잡았을때 날라오는 메세지
public void onStartTrackingTouch(SeekBar seekBar)
{
m_textTracking.setText(new StringBuilder()
.append("Tracking Start"));
}
@Override
//thumb 의 위치가 변경될 때마다 오는 메세지
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser)
{
songtime = progress;
}
};
private SeekBar m_sb;
private TextView m_textProgress;
private TextView m_textTracking;
private static int songtime;
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;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(v == bt){
mp.seekTo(songtime);
String ab = changeToMinutes(songtime);
mp.start();
m_sb.incrementProgressBy(mp.getCurrentPosition());
// TODO Auto-generated method stub
m_textProgress.setText( new StringBuilder().append(ab));
}
else if(v == bt1){
mp.stop();
}
}
}



