ورود

View Full Version : مشکل در ارتباط SeekBar با MediaPlayer



meysam jahedi
دوشنبه 10 اسفند 1394, 08:48 صبح
سلام
وقتتون بخیر

یه کلاس MyAdapter دارم که باهاش یه لیست اسم آهنگ رو میفرسته :


public class MyAdapter extends ArrayAdapter<String>{
private final Activity context;
public static MediaPlayer mp= new MediaPlayer();
//
private final String[] NameMusicc;
private final String path;
private static SharedPreferences sp;
private static String shart="play";

public MyAdapter(Activity context,String[] nameMusic,String path) {
super(context, R.layout.row_music, nameMusic);
this.context = context;
this.NameMusicc = nameMusic;
this.path=path;
//
}

@SuppressLint("ViewHolder")
@Override
public View getView(final int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();

View rowView= inflater.inflate(R.layout.row_music, null, true);
TextView txtTitle = (TextView) rowView.findViewById(R.id.row_music_txt);
final ImageView imageView_play = (ImageView) rowView.findViewById(R.id.row_music_play);
ImageView imageView_share = (ImageView) rowView.findViewById(R.id.row_music_share);
ImageView imageView_down = (ImageView) rowView.findViewById(R.id.row_music_down);
txtTitle.setText(NameMusicc[position]);

imageView_play.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub

try{


mp.reset();
mp.setDataSource(path + NameMusicc[position]);
mp.prepare();
mp.start();



} catch (IOException e){
//Log.v(getString(R.string.app_name), e.getMessage());
}
}
});
imageView_share.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub

}
});
imageView_down.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub

}
});
return rowView;

}

}
یه کلاس دیگه که MyAdapter فراخونی میشه ، و دستورات SeekBar :



public class Sher extends ListActivity {
//jadid
ListView list;
// MediaPlayer mediaPlayer;
SeekBar seek_bar;
Button pause_button;
// ImageButton play_button;
Handler seekHandler = new Handler();
String[] NmaeMusic = {
"لالایی",
"Lalaei.mp3",
"Java",
"Php",
"Sqllite",
"Html",
"C#‎‎‎‎‎‎"};
//
public String SD_PATH = new String ("/mnt/sdcard/");



@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sher);

pause_button = (Button) findViewById(R.id.sher_puse_play);
seek_bar = (SeekBar) findViewById(R.id.sher_seek);
setListAdapter(new MyAdapter(this, NmaeMusic,SD_PATH));


seek_bar.setMax(MyAdapter.mp.getDuration());
seekUpdation();
pause_button.setOnClickListener(new OnClickListener() {

public void onClick(View arg0) {
// seekUpdation();
MyAdapter.mp.stop();
}
});

}
Runnable run = new Runnable() {

@Override
public void run() {
seekUpdation();
}
};
public void seekUpdation() {

seek_bar.setProgress(MyAdapter.mp.getCurrentPositi on());
seekHandler.postDelayed(run, 1000);
seek_bar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

@Override
public void onStopTrackingTouch(SeekBar seek_bar) {
// TODO Auto-generated method stub

}

@Override
public void onStartTrackingTouch(SeekBar seek_bar) {
// TODO Auto-generated method stub

}

@Override
public void onProgressChanged(SeekBar seek_bar, int progress, boolean fromUser) {
if(fromUser){
MyAdapter.mp.seekTo(progress);
seek_bar.setProgress(progress);
}

}
});
}
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(fromUser){
MyAdapter.mp.seekTo(progress);
seekBar.setProgress(progress);
}
}
////
@Override
public void onBackPressed() {
MyAdapter.mp.stop();
finish();
}
}

با پخش وplay موزیک و توقفش مشکلی ندارم ، اما هرکاری میکنم SeekBar با MyAdapter.mp متچ نمیشه و با موزیک حرکت نمیکنه و وقتی SeekBar رو حرکت میدم آهنگ Stop میشه .

ممنون میشم راهنمایی کنید.

meysam jahedi
دوشنبه 10 اسفند 1394, 12:29 عصر
از دوستان کسی نظری نداره