package master.flame.danmaku.controller; import android.view.View; import master.flame.danmaku.controller.DrawHandler.Callback; import master.flame.danmaku.danmaku.model.BaseDanmaku; import master.flame.danmaku.danmaku.parser.BaseDanmakuParser; public interface IDanmakuView { public final static int THREAD_TYPE_NORMAL_PRIORITY = 0x0; public final static int THREAD_TYPE_MAIN_THREAD = 0x1; public final static int THREAD_TYPE_HIGH_PRIORITY = 0x2; public final static int THREAD_TYPE_LOW_PRIORITY = 0x3; public boolean isPrepared(); public boolean isPaused(); public boolean isHardwareAccelerated(); /** * * @param type One of THREAD_TYPE_MAIN_THREAD, THREAD_TYPE_HIGH_PRIORITY, THREAD_TYPE_NORMAL_PRIORITY, or THREAD_TYPE_LOW_PRIORITY. */ public void setDrawingThreadType(int type); public void enableDanmakuDrawingCache(boolean enable); public boolean isDanmakuDrawingCacheEnabled(); public void showFPS(boolean show); public void addDanmaku(BaseDanmaku item); public void removeAllDanmakus(); public void removeAllLiveDanmakus(); public void setCallback(Callback callback); /** * for getting the accurate play-time. use this method intead of parser.getTimer().currMillisecond * @return */ public long getCurrentTime(); // ------------- Android View方法 -------------------- public View getView(); public int getWidth(); public int getHeight(); public void setVisibility(int visibility); public boolean isShown(); // ------------- 播放控制 ------------------- public void prepare(BaseDanmakuParser parser); public void seekTo(Long ms); public void start(); public void start(long postion); public void stop(); public void pause(); public void resume(); public void release(); public void toggle(); public void show(); public void hide(); /** * show the danmakuview again if you called hideAndPauseDrawTask() * @param position The position you want to resume * @see #hideAndPauseDrawTask */ public void showAndResumeDrawTask(Long position); /** * hide the danmakuview and pause the drawtask * @return the paused position * @see #showAndResumeDrawTask */ public long hideAndPauseDrawTask(); public void clearDanmakusOnScreen(); }