/** 区域内循环播放 */ public void loopDelayed(int startTime, int endTime) { int delayMillis = endTime - startTime; seekTo(startTime); if (!isPlaying()) start(); mVideoHandler.removeMessages(HANDLER_MESSAGE_LOOP); mVideoHandler.sendMessageDelayed( mVideoHandler.obtainMessage(HANDLER_MESSAGE_LOOP, getCurrentPosition(), delayMillis), delayMillis); }
@Override public void handleMessage(Message msg) { switch (msg.what) { case HANDLER_MESSAGE_PARSE: pause(); break; case HANDLER_MESSAGE_LOOP: if (isPlaying()) { seekTo(msg.arg1); sendMessageDelayed( mVideoHandler.obtainMessage(HANDLER_MESSAGE_LOOP, msg.arg1, msg.arg2), msg.arg2); } break; default: break; } super.handleMessage(msg); }