package tv.danmaku.media.list; import java.io.IOException; import tv.danmaku.android.util.DebugLog; import tv.danmaku.media.resource.Segment; import android.media.MediaPlayer; public class DefMediaSegmentPlayer extends MediaPlayer { public static String TAG = DefMediaSegmentPlayer.class.getName(); private int mOrder = -1; private Segment mSegment; private int mStartTime; final public int getOrder() { return mOrder; } final public int getStartTime() { return mStartTime; } final public Segment getSegment() { return mSegment; } final public void setSegment(int order, int startTime, Segment segment) throws IllegalArgumentException, IllegalStateException, IOException { mOrder = order; mStartTime = startTime; mSegment = segment; DebugLog.dfmt(TAG, "set item [%d] %d(%d) %s", order, startTime, segment.mDuration, segment.mUrl); super.setDataSource(segment.mUrl); } final public boolean hasSegment() { return mSegment != null; } @Override public int getCurrentPosition() { if (mSegment == null) return -1; int currentPosition = mStartTime + super.getCurrentPosition(); return currentPosition; } }