Android Wheel Picker ile Media Player Kullanımı
Merhaba arkadaşlar,
Android de number picker yada time picker kullanarak kullanıcının seçtiği değere göre media player çalmasını istiyorum örneğin 5 seçili ise, 5 dakika boyunca media player çalsın istiyorum nasıl yapabilirim ? setOnValueChangedListener methodunu denedim içindeki newVal en son seçilen değer oluyor fakat o değere gelene kadar bütün değerler zaten son değer oluyor bu yüzden de istediğim işlemleri yapamıyorum.. bir fikri olan yardımcı olursa çok sevinirim.. android in kendi component ları işime yaramadığı için Android Wheel Picker var onu kullandım onda da kullanıcının seçtiği değer direk olarak son değer oluyor.. 5 geldiyse 5 dakika boyunca media player çalıyor fakat onunda başka bir sorunu ile karşılaştım.. tekrardan wheel picker ı değiştirince gelen değere göre media player çalmıyor!! Ne yapmam lazım.. teşekkürler şimdiden.. kod kısmınıda paylaşıyorum
[code]
// Android Wheel Picker ile ilgili işlemleri yaptım, updateListentoMusicMin methodu çalışarak kullanıcının seçtiği değeri gönderiyorum
min_picker.addChangingListener(new OnWheelChangedListener() {
@Override
public void onChanged(WheelView wheel, int oldValue, int newValue) {
if (!scrolling) {
updateListentoMusicMin(newValue);
}
}
});
min_picker.addScrollingListener( new OnWheelScrollListener() {
@Override
public void onScrollingStarted(WheelView wheel) {
scrolling = true;
}
@Override
public void onScrollingFinished(WheelView wheel) {
scrolling = false;
updateListentoMusicMin(min_picker.getCurrentItem());
}
});
[/code]
[code]
/* kullanıcının seçtiği değeri newValue parametresi ile alıyorum, startAgain fonksiyonu ile de media playerin çalma süresi işlemlerini yapmak istiyorum.. problem şu : dediğim gibi kullanıcı bir değer seçiyor ve o değer 5 ise 5 dakika boyunca şarkı çalıyor, tekrardan değeri seçince şarkının kesilmesini ve o değere göre yeniden sürenin belirlenip çalmasını istiyorum!!!!!! */
private void updateListentoMusicMin(int newValue)
{
if(mediaPlayer.isPlaying())
{
mediaPlayer.reset();
startAgain(newValue);
}
else
{
startAgain(newValue);
}
Toast.makeText(getApplicationContext(),"selected minutes:"+newValue,Toast.LENGTH_SHORT).show();
}
[/code]
[code]
// Bu fonksiyon ile seçili değere göre, media playerin çalma süresini belirliyorum dakika cinsinden
private void startAgain(int newValue) {
CountDownTimer countDownTimer = new CountDownTimer(60000*newValue,1000) {
@Override
public void onTick(long millisUntilFinished) {
mediaPlayer.start();
}
@Override
public void onFinish() {
mediaPlayer.stop();
}
}; countDownTimer.start();
}
[/code]