Я сделал это в этом проекте (проект не завершен (т.е. полированные), но быстро вперед работы):
https://bitbucket.org/owentech/epileptic-gibbon-android
Взгляните на playerfragment.java:
Я обрабатываю это, используя Threads для ускоренной перемотки медиаплеер.
Пример кода из проекта:
/*******************************/
/* Fast-Forward button actions */
/*******************************/
ffbutton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
arrays.fastforwardpressed = true;
FastForwardThread newFFThread = new FastForwardThread();
arrays.fastforwardfrom = mp.getCurrentPosition();
arrays.fastforwardto = arrays.fastforwardfrom;
newFFThread.start();
break;
case MotionEvent.ACTION_UP:
arrays.fastforwardpressed = false;
mp.seekTo(arrays.fastforwardto);
break;
}
return true;
}
});
public class FastForwardThread extends Thread
{
public FastForwardThread()
{
super("FastForwardThread");
}
public void run()
{
while (arrays.fastforwardpressed == true)
{
arrays.fastforwardto = arrays.fastforwardto + 10000;
int fastforwardseconds = arrays.fastforwardto/1000;
int hours = fastforwardseconds/3600, remainder = fastforwardseconds % 3600, minutes = remainder/60, seconds = remainder % 60;
String Hours = Integer.toString(hours);
String Minutes = Integer.toString(minutes);
String Seconds = Integer.toString(seconds);
if (Hours.length() == 1)
{
Hours = "0" + Hours;
}
if (Minutes.length() == 1)
{
Minutes = "0" + Minutes;
}
if (Seconds.length() == 1)
{
Seconds = "0" + Seconds;
}
arrays.formattedfftime = Hours + ":" + Minutes + ":" + Seconds;
fastforwardHandler.sendEmptyMessage(0);
try
{
sleep(100);
} catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
}
Вы хотите сказать, вы хотите, чтобы начать быструю пересылку, когда вы долго кнопкой мыши, и продолжать делать это, пока вы отпустите кнопку? – Eric
да, точно ........ – jxgn
Это может быть полезно: http://stackoverflow.com/questions/7124920/how-to-detect-onlongclick-action-up-event –