package com.webapp.dao.impl; import java.util.ArrayList; import java.util.List; import org.apache.commons.dbutils.DbUtils; import org.apache.commons.dbutils.handlers.BeanListHandler; import com.webapp.dao.MediaDao; import com.webapp.entity.Media; public class MediaDaoImpl extends MediaDao{ /** * ��Ƶת�� * @param ffmpegPath ת�빤�ߵĴ��·�� * @param upFilePath ����ָ��Ҫת����ʽ���ļ�,Ҫ��ͼ����ƵԴ�ļ� * @param codcFilePath ��ʽת����ĵ��ļ�����·�� * @param mediaPicPath ��ͼ����·�� * @return * @throws Exception */ public boolean executeCodecs(String ffmpegPath, String upFilePath, String codcFilePath, String mediaPicPath) throws Exception { // ����һ��List���������ת����Ƶ�ļ�Ϊflv��ʽ����� List<String> convert = new ArrayList<String>(); convert.add(ffmpegPath); // ���ת������·�� convert.add("-i"); // ��Ӳ����-i�����ò��ָ��Ҫת�����ļ� convert.add(upFilePath); // ���Ҫת����ʽ����Ƶ�ļ���·�� convert.add("-qscale"); //ָ��ת������� convert.add("6"); convert.add("-ab"); //������Ƶ���� convert.add("64"); convert.add("-ac"); //�������� convert.add("2"); convert.add("-ar"); //�������IJ��Ƶ�� convert.add("22050"); convert.add("-r"); //����֡Ƶ convert.add("24"); convert.add("-y"); // ��Ӳ����-y�����ò��ָ���������Ѵ��ڵ��ļ� convert.add(codcFilePath); // ����һ��List������������Ƶ�н�ȡͼƬ����� List<String> cutpic = new ArrayList<String>(); cutpic.add(ffmpegPath); cutpic.add("-i"); cutpic.add(upFilePath); // ͬ�ϣ�ָ�����ļ���������ת��Ϊflv��ʽ֮ǰ���ļ���Ҳ������ת����flv�ļ��� cutpic.add("-y"); cutpic.add("-f"); cutpic.add("image2"); cutpic.add("-ss"); // ��Ӳ����-ss�����ò��ָ����ȡ����ʼʱ�� cutpic.add("17"); // �����ʼʱ��Ϊ��17�� cutpic.add("-t"); // ��Ӳ����-t�����ò��ָ�����ʱ�� cutpic.add("0.001"); // ��ӳ��ʱ��Ϊ1���� cutpic.add("-s"); // ��Ӳ����-s�����ò��ָ����ȡ��ͼƬ��С cutpic.add("800*280"); // ��ӽ�ȡ��ͼƬ��СΪ350*240 cutpic.add(mediaPicPath); // ��ӽ�ȡ��ͼƬ�ı���·�� boolean mark = true; ProcessBuilder builder = new ProcessBuilder(); try { builder.command(convert); builder.redirectErrorStream(true); builder.start(); builder.command(cutpic); builder.redirectErrorStream(true); // ��������Ϊ true�����κ���ͨ���˶���� start() ������ĺ���ӽ�����ɵĴ���������������ϲ��� //�����߾���ʹ�� Process.getInputStream() ������ȡ����ʹ�ù�������Ϣ����Ӧ������ø����� builder.start(); } catch (Exception e) { mark = false; System.out.println(e); e.printStackTrace(); } return mark; } public int getAllMediaCount() throws Exception { super.init(); //��̬����SQL��� String strSQL = "select COUNT(*) from tb_media"; int counter = qRunner.query(conn, strSQL,null); DbUtils.closeQuietly(conn); return counter; } @SuppressWarnings("deprecation") public List<Media> queryALlMedia(int firstResult, int maxResult) throws Exception { super.init(); //��̬����SQL��� String strSQL = "select * from tb_media limit ?,?"; List<Media> lstMedia = (List<Media>)qRunner.query(conn, strSQL,new Object[]{firstResult,maxResult},new BeanListHandler<Media>(Media.class)); DbUtils.closeQuietly(conn); return lstMedia; } @SuppressWarnings("deprecation") public Media queryMediaById(int id) throws Exception { super.init(); //��̬����SQL��� String strSQL = "select * from tb_media where id = ?"; Media media = qRunner.query(conn, strSQL,new Object[]{id},new BeanListHandler<Media>(Media.class)).get(0); DbUtils.closeQuietly(conn); return media; } public boolean saveMedia(Media media) throws Exception { super.init(); String insertSQL = "insert into tb_media(title,src,picture,descript,uptime) values(?,?,?,?,?)"; int flag = qRunner.update(conn, insertSQL, new Object[]{media.getTitle(),media.getSrc(),media.getPicture() ,media.getDescript(),media.getUptime()}); DbUtils.closeQuietly(conn); return flag>0 ? true : false; } }