java实现视频上传和播放要点Word文件下载.docx
- 文档编号:13567313
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:19
- 大小:248.73KB
java实现视频上传和播放要点Word文件下载.docx
《java实现视频上传和播放要点Word文件下载.docx》由会员分享,可在线阅读,更多相关《java实现视频上传和播放要点Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
idintnotnullprimarykeyauto_incrementcomment'
主键'
titlevarchar(50)notnullcomment'
视频名称'
srcvarchar(200)notnullcomment'
视频存放地址'
picturevarchar(200)notnullcomment'
视频截图'
descriptvarchar(400)comment'
视频描述'
uptimevarchar(40)comment'
上传时间'
);
desctb_media;
项目结构图:
上传视频界面设计
在上传文件时,Form表单中
enctype属性值必须为"
multipart/form-data"
.模块界面设计如下图:
enctype属性值说明
application/x-www-form-urlencoded
表单数据被编码为名称/值对,这是标准的编码格式
multipart/form-data
表单数据被编码为一条消息,页面上每个控件对应消息中的一部分
text/plain
表单数据以纯文本形式进行编码,其中不含任何控件格式的字符
业务接口定义
面向接口编程,接口中定义系统功能模块.这样方便理清业务,同时接口的对象必须由实现了该接口的对象来创建.这样就避免编码中的某些业务遗漏等,同时扩展性也增强了.
packagecom.webapp.dao;
importjava.util.List;
importcom.webapp.entity.Media;
/**
*
*MediaDao.java
*@version:
1.1
*
*@author:
苏若年<
ahref="
mailto:
DennisIT@"
>
发送邮件<
/a>
*@since:
1.0创建时间:
2013-2-07上午10:
19:
54
*TODO:
interfaceMediaDao.javaisusedfor...
*/
publicinterfaceMediaDao{
/**
*视频转码
*@paramffmpegPath转码工具的存放路径
*@paramupFilePath用于指定要转换格式的文件,要截图的视频源文件
*@paramcodcFilePath格式转换后的的文件保存路径
*@parammediaPicPath截图保存路径
*@return
*@throwsException
publicbooleanexecuteCodecs(StringffmpegPath,StringupFilePath,StringcodcFilePath,StringmediaPicPath)throwsException;
*保存文件
*@parammedia
publicbooleansaveMedia(Mediamedia)throwsException;
*查询本地库中所有记录的数目
publicintgetAllMediaCount()throwsException;
*带分页的查询
*@paramfirstResult
*@parammaxResult
publicList<
Media>
queryALlMedia(intfirstResult,intmaxResult)throwsException;
*根据Id查询视频
*@paramid
publicMediaqueryMediaById(intid)throwsException;
}
接口的实现,这里列出ffmpeg视频转码与截图模块
publicbooleanexecuteCodecs(StringffmpegPath,StringupFilePath,StringcodcFilePath,
StringmediaPicPath)throwsException{
//创建一个List集合来保存转换视频文件为flv格式的命令
List<
String>
convert=newArrayList<
();
convert.add(ffmpegPath);
//添加转换工具路径
convert.add("
-i"
//添加参数"-i",该参数指定要转换的文件
convert.add(upFilePath);
//添加要转换格式的视频文件的路径
-qscale"
//指定转换的质量
6"
-ab"
//设置音频码率
64"
-ac"
//设置声道数
2"
-ar"
//设置声音的采样频率
22050"
-r"
//设置帧频
24"
-y"
//添加参数"-y",该参数指定将覆盖已存在的文件
convert.add(codcFilePath);
//创建一个List集合来保存从视频中截取图片的命令
cutpic=newArrayList<
cutpic.add(ffmpegPath);
cutpic.add("
cutpic.add(upFilePath);
//同上(指定的文件即可以是转换为flv格式之前的文件,也可以是转换的flv文件)
-f"
image2"
-ss"
//添加参数"-ss",该参数指定截取的起始时间
17"
//添加起始时间为第17秒
-t"
//添加参数"-t",该参数指定持续时间
0.001"
//添加持续时间为1毫秒
-s"
//添加参数"-s",该参数指定截取的图片大小
800*280"
//添加截取的图片大小为350*240
cutpic.add(mediaPicPath);
//添加截取的图片的保存路径
booleanmark=true;
ProcessBuilderbuilder=newProcessBuilder();
try{
mand(convert);
builder.redirectErrorStream(true);
builder.start();
mand(cutpic);
//如果此属性为true,则任何由通过此对象的start()方法启动的后续子进程生成的错误输出都将与标准输出合并,
//因此两者均可使用Process.getInputStream()方法读取。
这使得关联错误消息和相应的输出变得更容易
}catch(Exceptione){
mark=false;
System.out.println(e);
e.printStackTrace();
}
returnmark;
系统中可能存在多个模块,这些模块的业务DAO可以通过工厂来管理,需要的时候直接提供即可.
因为如果对象new太多,会不必要的浪费资源.所以工厂,采用单例模式,私有构造,提供对外可访问的方法即可.
importcom.webapp.dao.impl.MediaDaoImpl;
*DaoFactory.java
2013-2-07下午02:
18:
51
classDaoFactory.javaisusedfor...
publicclassDaoFactory{//工厂模式,生产Dao对象,面向接口编程,返回实现业务接口定义的对象
privatestaticDaoFactorydaoFactory=newDaoFactory();
//单例设计模式,私有构造,对外
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实现 视频 上传 播放 要点