Android 视频播放状态链控制简单实现
2014-06-11 18:14
561 查看
需求场景:连续进行视频播放2个小时,无任何按键响应
1、提示用户已观看多长时间,是否需要休息,用户可点击休息一会或继续观看,
2、如果用户没有任何反应一段时间以后自动退出应用
3、如果用户点击休息一会,间隔一段时间后自动进行播放
4、如果用户点击继续观看,则重置播放状态,重新计时
针对以上的效果做了简单的实现,如下:
主要代码:
1、提示用户已观看多长时间,是否需要休息,用户可点击休息一会或继续观看,
2、如果用户没有任何反应一段时间以后自动退出应用
3、如果用户点击休息一会,间隔一段时间后自动进行播放
4、如果用户点击继续观看,则重置播放状态,重新计时
针对以上的效果做了简单的实现,如下:
主要代码:
public class ActionManager { public enum State { Default, Playing, hasPromptRest, Rest } private static int stateTime = 0; // 某一状态的持续时间 private static int playPeriod = 2 * 3600; // 多长时间后提示休息 private static int hasPromptPeriod = 2 * 60; // 提示休息后,多长时间内没反应 private static int restPeriod = 10 * 60; // 再次提示休息的间隔 private static State ActionState = State.Default; private static boolean hasPause = false; private static Context context; public static void setContext(Context c) { context = c; } public static Context getContext() { return context; } public static void setTest() { playPeriod = 30; hasPromptPeriod = 30; restPeriod = 30; } private static int getActionTime() { return stateTime; } public static void setActionTime(int actionTime) { if (getActionState() == State.Default) { resetActionTime(); return; } if (hasPause) return; stateTime += actionTime; } private static State getActionState() { return ActionState; } public static void setState(State actionState) { ActionState = actionState; } public static void setActionState(State actionState) { resetActionTime(); ActionState = actionState; } public static void setHasPause(boolean p) { hasPause = p; } private static void resetActionTime() { stateTime = 0; } private static IAction getAction(Object data) { IAction action = new NullAction(); int actionTime = getActionTime(); switch (getActionState()) { case Playing : if (actionTime >= playPeriod) action = new PlayingAction(); break; case hasPromptRest : if (actionTime >= hasPromptPeriod) action = new HasPromptRestAction(); break; case Rest : if (actionTime >= restPeriod) action = new RestAction(); break; default : break; } return action; } /** * execute user monitor action */ public static void doAction(Object data, int timeInterval) { setActionTime(timeInterval); IAction action = getAction(data); action.doAction(data); } }
相关文章推荐
- android 简单的实现视频的播放 基于 ijkplayer的封装更加简单 方便快捷
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
- 实现简单的Android的播放视频功能
- android实现控制视频播放次数
- Android VideoView 自定义播放器 MediaController 实现视频播放控制和横竖屏适配
- 简单实现Aandroid视频中播放暂停按钮的效果
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
- 【Android】Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
- android视频播放简单实现示例(VideoView&MediaPlayer)
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
- android 简单的实现视频的播放 基于 ijkplayer的封装更加简单 方便快捷
- [置顶] 【Android】Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等
- android 多媒体部分学习笔记十--简单视频播放
- Android中VideoView及SurfaceView视频播放实现
- android之视频播放控件VideoView简单应用
- 状态开关按钮ToggleButton的简单使用:实现动态控制布局
- android之视频播放控件VideoView简单应用