آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

استفاده از radio button در mediaplayer

ebrahimi  10 سال پیش  10 سال پیش
0 0

با سلام

من ی مدیا پلیر ساختم که با 3 تا radio button موزیک هام عوض میشه به علاوه متعلقات!

مشکل من این هست که وقتی ی موزیک در حال پخش هست حتما باید اول دکمه توقف رو بزنم بعد موزیک رو عوض کنم تا همه چی درست کار کنه

ولی من میخوام حین پخش موزیک اگر radio button هام رو عوض کردم موزیک خود به خود متوقف بشه (که تا این مرحله کد هام درست کار میکنه) و اونی رو که انتخاب کردم با زدن دکمه پخش کار کنه ولی اینطور نمیشه

 public class MainActivity extends AppCompatActivity {


RadioGroup rg;
private Button buttonPlayStop;
private MediaPlayer mp;
private SeekBar seekBar;

private final Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);



initViews();



rg=(RadioGroup) findViewById(R.id.radioGroup1);
rg.clearCheck();
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

@Override
public void onCheckedChanged(RadioGroup arg0, int pos) {
// TODO Auto-generated method stub

switch (pos) {
case R.id.radio0:if(mp.isPlaying()==true)
{
mp.stop();
}
mp=MediaPlayer.create(getApplicationContext(), R.raw.song1);
break;
case R.id.radio1:if(mp.isPlaying()==true)
{
mp.stop();
}
mp=MediaPlayer.create(getApplicationContext(), R.raw.song2);
break;
case R.id.radio2:if(mp.isPlaying()==true)
{
mp.stop();
}
mp=MediaPlayer.create(getApplicationContext(), R.raw.song3);
break;
default:
break;
}
}
} );

}




private void initViews() {
buttonPlayStop = (Button) findViewById(R.id.ButtonPlayStop);
buttonPlayStop.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {buttonClick();}});

mp= MediaPlayer.create(this, R.raw.song1);

seekBar = (SeekBar) findViewById(R.id.SeekBar01);
seekBar.setMax(mp.getDuration());
seekBar.setOnTouchListener(new View.OnTouchListener() {@Override public boolean onTouch(View v, MotionEvent event) {
seekChange(v);
return false; }
});

}

public void startPlayProgressUpdater() {
seekBar.setProgress(mp.getCurrentPosition());

if (mp.isPlaying()) {
Runnable notification = new Runnable() {
public void run() {
startPlayProgressUpdater();
}
};
handler.postDelayed(notification,1000);
}else{
mp.pause();
buttonPlayStop.setText(getString(R.string.play_str));
seekBar.setProgress(0);
}
}


private void seekChange(View v){
if(mp.isPlaying()){
SeekBar sb = (SeekBar)v;
mp.seekTo(sb.getProgress());
}
}


private void buttonClick(){
if (buttonPlayStop.getText() == getString(R.string.play_str)) {
buttonPlayStop.setText(getString(R.string.pause_str));
try{
mp.start();
startPlayProgressUpdater();
}catch (IllegalStateException e) {
mp.pause();
}
}else {
buttonPlayStop.setText(getString(R.string.play_str));
mp.pause();
}
}

 
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .