/****************************************************************************** * Copyright (C) 2015 Shenzhen Penguin Network Technology Co., Ltd * All Rights Reserved. * 本软件为深圳市企鹅网络科技有限公司开发研制。未经本公司正式书面同意,其他任何个人、团体 * 不得使用、复制、修改或发布本软件. *****************************************************************************/ package com.qxueyou.scc.media.service; import java.util.List; import com.qxueyou.scc.admin.classes.model.ClsClass; import com.qxueyou.scc.base.model.Pager; import com.qxueyou.scc.base.model.Result; import com.qxueyou.scc.media.model.MediaVideo; import com.qxueyou.scc.media.model.MediaVideoCache; import com.qxueyou.scc.media.model.MediaVideoRecord; import com.qxueyou.scc.media.model.MediaVideoTrans; import com.qxueyou.scc.media.model.MediaVideoViewVO; import com.qxueyou.scc.media.model.VideoConverTask; import com.qxueyou.scc.org.model.OrgCollegeCourse; import com.qxueyou.scc.org.model.Organization; /** * 视频service接口 * @author ody.yuan * */ public interface IMediaVideoService { /** * APP获取视频列表 * @param sql 查询语句 * @param args 参数 * @return */ List queryMediaVideoList(String sql,List args,Pager pager); /** * APP提交缓冲视频 * * @param videoId videoId,多个以“,”分隔 * @return result true为成功,false时,msg为错误描述 */ Result doSubmitCacheVideo(MediaVideoCache cache); /** * APP提交播放视频 * * @param * @return result true为成功,false时,msg为错误描述 */ Result doSubmitPlayVideo(MediaVideoRecord mvr); /** * APP播放完视频 * * @param * @return result true为成功,false时,msg为错误描述 */ Result doSubmitPlayFinish(MediaVideoRecord mvr); /** * 发送消息:调用本地转码服务,使用消息队列来控制 * * @param videoId 视频ID */ Result doFfmpegMediaTrascode( String videoId , String videoName ) ; /** * 查询转码结果 * @param hql * @param args * @return */ List queryTransItem(String hql,List args); /** * 得到服务器IP地址 * @return */ String getConfusionIp(); /** * 修改视频 * @param video * @return */ Result doSaveUpdateMedia( MediaVideo video ,String classScheduleId ); /** * 查询班主任下的pc端视频列表 * @param hql * @param args * @return */ List queryVideoItem(String hql,List args); /** * 将视频从班主任拿到最上层机构,然后机构指定到各个层级之后,新建班级,所有视频都出现在公共课程,这里要初始化成最开始的 课程-视频 结构 * @param collegeCourse * @return */ Result doInitClassOrgVideo(OrgCollegeCourse collegeCourse); /** * 初始化该科目下(班主任角色上传的视频,非指定过去的视频);视频链接:视频课程 map对象 * @param collegeCourse * @param map * @return */ Result doInitVideoObject(MediaVideo video); /** * 增加播放次数 * @param videoId * @return */ boolean addPlayTimes(String videoId); /** * 编排数据 * @param data 需要编排的数据 */ Result doReOrderVideo(List ids, List index); /** * 创建转码记录 * * @param videoId * @param videoName */ void saveMediaVideoTrans(String videoId); /********************************************************************* 初始化数据的方法开始 ************************************************************************/ Result doInitCourseReVideoOrder(Organization org); Result doInitClassSubject(ClsClass cls); Result doInitSubjectClass(ClsClass cls); Result doInitClassMediaInfo(ClsClass cls); Result doInitOrgVideoSubject(Organization org); Result doInitOrgVideoLeft(MediaVideo video); Result doInitClassVideoLeft(MediaVideo video); Result doInitClassOrgSubject(OrgCollegeCourse course); /********************************************************************* 初始化数据的方法结束 ************************************************************************/ /** * 需要转码的视频,插入转码队列记录表 * @param video * @return */ Result insertVideoConverTask(MediaVideo video); /** * 统计视频的进度 * * @param userId * @param videoId */ void statisticCompDegree(String userId, String videoId); /** * 选择历史视频 * * @param subjectId * @param subjectName * @param videoId * @return */ Result insertChooseVideo(String subjectId, String subjectName, String videoId, String chapterId); /** * 转码队列 * * @return */ List getVideoConverTaskList(); /** * 保存视频接口 * * @param video * @return */ Result saveVideo(MediaVideo video); }