留言请先【登录】,您也可以选中 匿名留言 无需登录发表评论!
发表评论 匿名发表:
评论内容: 写入: 个
剩余: 个
另外,实现观看影音时,需要获取播放视频的详细信息和最新评论,并且将视频的观看次数加一,这需要编写Servlet方法doSingleShow()来实现,其具体代码如下: protected void doSingleShow(HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException { request.setAttribute(\,getInitParameter(\)); try {
MediaDao mediaDao=new MediaDao();
int id=Change.strToInt(request.getParameter(\)); mediaDao.setLookCount(id);// 将视频的观看次数加1 MediaSingle single=mediaDao.getSingleMedia(id); // 获取视频的详细信息
/* 获取该视频的最新的前n条评论 */
MediaRevDao mediaRDao=new MediaRevDao();
List mediaRlist=mediaRDao.getNewReviewList(id); /* 保存要播放的视频、视频的评论 */
request.setAttribute(\,single); request.setAttribute(\,mediaRlist); } catch (Exception e) {
System.out.println(\获取视频详细信息失败!\); e.printStackTrace(); } String
forward=this.getServletContext().getInitParameter(\); RequestDispatcher rd=request.getRequestDispatcher(forward); rd.forward(request,response);
}
6、上传影音模块设计
在实现上传影音文件时,需要编写Servlet代码,用来出来上传影音请求。这里通过编写doInsert()方法来实现,其代码如下: protected void doInsert(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
request.setAttribute(\,getInitParameter(\) String message=\;
HttpSession session=request.getSession(); int
whoid=((UserSingle)session.getAttribute(\)).getId(); String type=request.getParameter(\);
if(\.equals(type)){ //如果是单击"上传视频"提交按钮触发的请求 try {
SmartUpload myup=new SmartUpload();
myup.initialize(this, request, response);
myup.setAllowedFilesList(\); //设置允许上传的文件类型
myup.upload(); //上传文件
File upfile=myup.getFiles().getFile(0); //获取上传的文件。因为只上传了一个文件,所以只有一个元素 message=validateUpLoad(upfile);
if(message.equals(\)){ //如果通过验证
Date now=new Date(); //获取当前时间
String serialName=Change.getSerial(now); //调用工具Bean根据当前时间获取一个惟一名称 String
basePath=getServletContext().getRealPath(\); //获取Web应用的实际存放路径 String
upFilePath=basePath+\+serialName+\+upfile.getFileExt(); //设置一个保存临时文件的路径:Web应用根目录\\pages\\admin\\media\\temp\\上传的文件。(如,F:\\Tomcat 6.0\\webapps\\MediaBlog\\pages\\admin\\media\\temp\\04302008143755.mpg) String
flvFilePath=basePath+\+serialName+\; //设置转换为flv格式后文件的保存路径 String
cutPicPath=basePath+\+serialName+\; //设置从上传的视频中截取的图片的保存路径 upfile.saveAs(upFilePath,File.SAVEAS_PHYSICAL); //保存文件到磁盘中,作为临时文件 boolean
mark=convertVideo(upFilePath,flvFilePath,cutPicPath);//转换视频格式 if(mark){//转换视频格式成功,向数据表中添加该视频信息 String src=serialName+\; //获取视频成功转换为flv格式后的文件名
String time=Change.dateTimeChange(now);
String pic=serialName+\//获取视频的截图名称 int count=0;//设置视频的访问次数 String
info=myup.getRequest().getParameter(\); //获取输入的视频描述信息 String
title=myup.getRequest().getParameter(\); //获取输入的视频标题
if(title==null||title.equals(\))title=\无标题\; if(info==null||info.equals(\))info=\我的视频\ Object[] params={whoid,title,src,pic,info,time,count};
MediaDao mediaDao=new MediaDao();
int i=mediaDao.upLoad(params); //调用DAO类向数据表中添加视频信息
if(i<=0) //添加视频信息失败
message=\保存视频信息时失败!\; else //添加视频信息成功
message=\视频上传成功!\; }
else //转换视频格式失败
message=\转换视频时失败!\; }
}catch(SecurityException e1){ //捕获违反了允许上传的文件类型后抛出的异常
message=\只允许上传 avi、asf、asx、3gp、mpg、mov、mp4、wmv、flv 格式图片!\;
e1.printStackTrace(); }catch (SmartUploadException e2) {
message=\视频上传失败!\; e2.printStackTrace(); }catch(Exception e3){
message=\操作失败!\; e3.printStackTrace(); }catch(OutOfMemoryError e4){
message=\上传失败!您上传的文件太大!\; e4.printStackTrace(); } }
else //如果单击"上传影音"超链接触发的请求 message=\请选择要上传的视频!\;
request.setAttribute(\,message); String
forward=getServletContext().getInitParameter(\);
RequestDispatcher rd=request.getRequestDispatcher(forward); rd.forward(request,response);
}
另外,还需要调用convertVideo()方法将视频转换为FLV格式,其代码实现如下: private boolean convertVideo(String upFilePath,String flvFilePath,String cutPicPath){
String ffmpegPath=getInitParameter(\); //获取在web.xml中配置的转换工具(ffmpeg.exe)的存放路径 //创建一个List集合来保存转换视频文件为flv格式的命令 List
convert.add(\); //添加参数"-i",该参数指定要转换的文件 convert.add(upFilePath); //添加要转换格式的视频文件的路径 convert.add(\); convert.add(\); convert.add(\); convert.add(\);
convert.add(\); convert.add(\); convert.add(\); convert.add(\); convert.add(\); convert.add(\); convert.add(\); convert.add(\);
convert.add(\); //添加参数"-y",该参数指定将覆盖已存在的文件 convert.add(flvFilePath);
//创建一个List集合来保存从视频中截取图片的命令 List
cutpic.add(upFilePath);
//指定的文件即可以是转换为flv格式之前的文件,也可以是转换的flv文件
cutpic.add(\); cutpic.add(\); cutpic.add(\);
cutpic.add(\); //添加参数"-ss",该参数指定截取的起始时间
cutpic.add(\); //添加起始时间为第2秒 cutpic.add(\); //添加参数"-t",该参数指定持续时间
cutpic.add(\); //添加持续时间为1毫秒 cutpic.add(\);
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库JSP博客课程设计(3)在线全文阅读。
相关推荐: