123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391 |
- package com.yihu.wlyy.util;
- import com.fasterxml.jackson.databind.node.ObjectNode;
- import com.yihu.wlyy.util.fastdfs.FastDFSUtil;
- import it.sauronsoftware.jave.*;
- import org.apache.commons.lang3.StringUtils;
- import java.io.*;
- public class CommonUtil {
- /**
- * 获取图片全路径
- *
- * @return
- */
- public static String getPhoneUrl(String url) {
- if (StringUtils.isEmpty(url)) {
- return "";
- } else {
- if (url.indexOf("http") > -1) {
- return url;
- } else {
- return SystemConf.getInstance().getServerUrl() + url;
- }
- }
- }
- public static String getMobileEncode(String mobile) {
- if (StringUtils.isNotEmpty(mobile) && mobile.length() == 11) {
- return mobile.substring(0, 4) + "****" + mobile.substring(8, 11);
- }
- return mobile;
- }
- public static String getIdcardEncode(String idcard) {
- if (idcard != null) {
- if (idcard.length() == 18) {
- return idcard.substring(0, 9) + "*******" + idcard.substring(16, 18);
- } else if (idcard.length() == 15) {
- return idcard.substring(0, 8) + "***" + idcard.substring(11, 15);
- }
- }
- return idcard;
- }
- /**
- * 对象转数组
- *
- * @param obj
- * @return
- */
- public static byte[] toByteArray(Object obj) {
- byte[] bytes = null;
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- try {
- ObjectOutputStream oos = new ObjectOutputStream(bos);
- oos.writeObject(obj);
- oos.flush();
- bytes = bos.toByteArray();
- oos.close();
- bos.close();
- } catch (IOException ex) {
- ex.printStackTrace();
- }
- return bytes;
- }
- /**
- * 数组转对象
- *
- * @param bytes
- * @return
- */
- public static Object toObject(byte[] bytes) {
- Object obj = null;
- try {
- ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
- ObjectInputStream ois = new ObjectInputStream(bis);
- obj = ois.readObject();
- ois.close();
- bis.close();
- } catch (IOException ex) {
- ex.printStackTrace();
- } catch (ClassNotFoundException ex) {
- ex.printStackTrace();
- }
- return obj;
- }
- public static final InputStream byte2Input(byte[] buf) {
- return new ByteArrayInputStream(buf);
- }
- public static final byte[] input2byte(InputStream inStream) throws IOException {
- ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
- byte[] buff = new byte[100];
- int rc = 0;
- while ((rc = inStream.read(buff, 0, 100)) > 0) {
- swapStream.write(buff, 0, rc);
- }
- byte[] in2b = swapStream.toByteArray();
- return in2b;
- }
- /**
- * 返回:张三为张*
- *
- * @param name 姓名
- * @return
- */
- public static String getEncryptName(String name) {
- if (StringUtils.isEmpty(name)) {
- return null;
- }
- if (name.length() == 1) {
- return name;
- }
- // 获取姓
- String temp = name.substring(0, 1);
- for (int i = 1; i < name.length(); i++) {
- temp += "*";
- }
- return temp;
- }
- /**
- * 拷贝临时图片到存储目录
- *
- * @param images
- * @return
- * @throws IOException
- */
- // public static String copyTempImage(String images) throws IOException {
- // // 文件保存的临时路径
- // String tempPath = SystemConf.getInstance().getTempPath() + File.separator;
- // // 图片保存路径
- // String imagePath = SystemConf.getInstance().getImagePath() + File.separator;
- // String[] tempImages = images.split(",");
- // String temp = "";
- // for (String image : tempImages) {
- // File file = new File(tempPath + image);
- // File smallFile = new File(tempPath + image + "_small");
- // if (file.exists() && smallFile.exists()) {
- // // 原图拷贝路径
- // File targetFile = new File(imagePath + image);
- // // 缩略图拷贝路径
- // File targetSmallFile = new File(imagePath + image + "_small");
- // // 拷贝原图
- // FileUtils.copyFile(file, targetFile);
- // // 拷贝缩略图
- // FileUtils.copyFile(smallFile, targetSmallFile);
- // // 删除临时文件
- // FileUtils.forceDelete(file);
- // FileUtils.forceDelete(smallFile);
- // if (temp.length() == 0) {
- // temp = SystemConf.getInstance().getImageServer() + image;
- // } else {
- // temp += "," + SystemConf.getInstance().getImageServer() + image;
- // }
- // }
- // }
- // return temp;
- // }
- /**
- * 拷贝临时语音文件到存储目录
- *
- * @param voices
- * @return
- * @throws IOException
- */
- public static String copyTempVoice(String voices) throws Exception {
- // 文件保存的临时路径
- String serverUrl = SystemConf.getInstance().getSystemProperties().getProperty("fastdfs_file_url");
- FastDFSUtil fastDFSUtil = new FastDFSUtil();
- String fileUrls = "";
- File f = new File(voices);
- if (f.exists()) {
- String fileName = f.getName();
- InputStream in = new FileInputStream(f);
- ObjectNode result = fastDFSUtil.upload(in, fileName.substring(fileName.lastIndexOf(".") + 1), "");
- in.close();
- if (result != null) {
- fileUrls += (StringUtils.isEmpty(fileUrls) ? "" : ",") + serverUrl
- + result.get("groupName").toString().replaceAll("\"", "") + "/"
- + result.get("remoteFileName").toString().replaceAll("\"", "");
- f.delete();
- }
- }
- return fileUrls;
- }
- /**
- * 校验健康指标是否正常
- *
- * @param curValue 当前值
- * @param standardMax 最大标准值
- * @param standardMin 最小标准值
- * @return 0正常,1高,-1低
- */
- public static double checkHealthIndex(double curValue, double standardMax, double standardMin) {
- if (curValue <= 0) {
- return 0;
- }
- if (standardMax > 0 && curValue > standardMax) {
- return curValue;
- }
- // 低于标准值,暂不推
- // if (standardMin > 0 && curValue < standardMin) {
- // return -curValue;
- // }
- return 0;
- }
- /**
- * 上传文件到FastDFS
- *
- * @param files 临时文件
- * @return
- * @throws Exception
- */
- public static String copyTempImage(String files) throws Exception {
- // 文件保存的临时路径
- String tempPath = SystemConf.getInstance().getTempPath() + File.separator;
- String serverUrl = SystemConf.getInstance().getSystemProperties().getProperty("fastdfs_file_url");
- String[] fileArray = files.split(",");
- FastDFSUtil fastDFSUtil = new FastDFSUtil();
- String fileUrls = "";
- for (String file : fileArray) {
- File f = new File(tempPath + file);
- File fs = new File(tempPath + file + "_small");
- if (f.exists()) {
- String fileName = f.getName();
- InputStream in = new FileInputStream(f);
- ObjectNode result = fastDFSUtil.upload(in, fileName.substring(fileName.lastIndexOf(".") + 1), "");
- in.close();
- if (result != null) {
- fileUrls += (StringUtils.isEmpty(fileUrls) ? "" : ",") + serverUrl
- + result.get("groupName").toString().replaceAll("\"", "") + "/"
- + result.get("remoteFileName").toString().replaceAll("\"", "");
- f.delete();
- if (fs.exists()) {
- fs.delete();
- }
- }
- }
- }
- return fileUrls;
- }
- public static void changeToMp3(String sourcePath, String targetPath) {
- File source = new File(sourcePath);
- File target = new File(targetPath);
- AudioAttributes audio = new AudioAttributes();
- Encoder encoder = new Encoder();
- audio.setCodec("libmp3lame");
- EncodingAttributes attrs = new EncodingAttributes();
- attrs.setFormat("mp3");
- attrs.setAudioAttributes(audio);
- try {
- encoder.encode(source, target, attrs);
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- } catch (InputFormatException e) {
- e.printStackTrace();
- } catch (EncoderException e) {
- e.printStackTrace();
- }
- }
- public static String getVideoTimeAndImg(String sourcePath,String targetPath) throws Exception{
- File source = new File(sourcePath);
- Encoder encoder = new Encoder();
- MultimediaInfo m = encoder.getInfo(source);
- File target = new File(targetPath);//转图片
- VideoAttributes video = new VideoAttributes();
- video.setCodec("png");//转图片
- video.setSize(new VideoSize(600, 500));
- EncodingAttributes attrs = new EncodingAttributes();
- attrs.setFormat("image2");//转图片
- attrs.setOffset(0.01f);//设置偏移位置,即开始转码位置(3秒)
- attrs.setDuration(0.01f);//设置转码持续时间(1秒)
- attrs.setVideoAttributes(video);
- encoder.encode(source, target, attrs);
- return m.getDuration()+"";
- }
- public static void changeToMp4(String sourcePath, String targetPath) {
- File source = new File(sourcePath);
- File target = new File(targetPath);
- AudioAttributes audio = new AudioAttributes();
- //audio.setCodec("aac");
- audio.setCodec("libvorbis");
- // audio.setBitRate(new Integer(64000));
- //audio.setChannels(new Integer(1));
- // audio.setSamplingRate(new Integer(22050));
- VideoAttributes video = new VideoAttributes();
- //video.setCodec("libxvid");// 转MP4
- video.setCodec("libtheora");//
- // video.setBitRate(new Integer(240000));// 180kb/s比特率
- // video.setFrameRate(new Integer(28));// 1f/s帧频,1是目前测试比较清楚的,越大越模糊
- EncodingAttributes attrs = new EncodingAttributes();
- attrs.setFormat("ogg");// 转MP4
- attrs.setAudioAttributes(audio);
- attrs.setVideoAttributes(video);
- Encoder encoder = new Encoder();
- long beginTime = System.currentTimeMillis();
- try {
- // 获取时长
- MultimediaInfo m = encoder.getInfo(source);
- System.out.println(m.getDuration());
- System.out.println("获取时长花费时间是:" + (System.currentTimeMillis() - beginTime));
- beginTime = System.currentTimeMillis();
- encoder.encode(source, target, attrs);
- System.out.println("视频转码花费时间是:" + (System.currentTimeMillis() - beginTime));
- } catch (IllegalArgumentException e) {
- e.printStackTrace();
- } catch (InputFormatException e) {
- e.printStackTrace();
- } catch (EncoderException e) {
- e.printStackTrace();
- }
- }
- public static void main(String args[]) throws Exception{
- System.out.print("中文".length());
- System.out.print("中文".substring(0,30));
- }
- public static String getSubString(String content,int min,int max){
- if(StringUtils.isBlank(content)){
- return "";
- }else if(content.length()<=max){
- return content;
- }else{
- return content.substring(min,max);
- }
- }
- public static String saveVoiceToDisk(InputStream inputStream,String newFileName) throws Exception {
- // 文件保存的临时路径
- String tempPath = SystemConf.getInstance().getTempPath() + File.separator;
- // 拼接年月日路径
- String datePath = DateUtil.getStringDate("yyyy") + File.separator + DateUtil.getStringDate("MM") + File.separator + DateUtil.getStringDate("dd") + File.separator;
- // 保存路径
- File uploadFile = new File(tempPath + datePath + newFileName);
- FileOutputStream fileOutputStream = null;
- try {
- if (!uploadFile.getParentFile().exists()) {
- uploadFile.getParentFile().mkdirs();
- }
- byte[] data = new byte[1024];
- int len = 0;
- fileOutputStream = new FileOutputStream(uploadFile);
- while ((len = inputStream.read(data)) != -1) {
- fileOutputStream.write(data, 0, len);
- }
- // 返回保存路径
- return tempPath+datePath + newFileName;
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (inputStream != null) {
- try {
- inputStream.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- if (fileOutputStream != null) {
- try {
- fileOutputStream.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return null;
- }
- }
|