zoukankan      html  css  js  c++  java
  • java实现音频转换

    这里需要用到第三方 ffmpeg.exe 

    package com.convertaudio;

    import java.io.File;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.logging.Level;
    import java.util.logging.Logger;

    import sun.rmi.runtime.Log;

    public class ConvertAudio {
    /**
    * 检查文件是不是文件
    * @param file
    * @return
    */
    public boolean checkFile(File file){
    if(file.isFile())
    return true;
    else
    return false;
    }
    /**
    * 获取文件的后缀名
    */
    public String getFileSuffix(File file){
    String filename=file.getName();
    String fileSuffixName=null;
    if(filename!=null){
    int startPosition=filename.lastIndexOf(".");
    fileSuffixName=filename.substring(startPosition);
    }
    return fileSuffixName;

    }
    /**
    * 检验后缀名是否符合转换要求
    * @param suffixName
    * @return
    */
    public boolean checkFileSuffix(String suffixName){
    switch (suffixName) {
    case ".aac":
    case ".avi":
    case ".wmv":
    case ".3gp":
    case ".flv":
    case ".mp4":return true;
    default: return false;
    }
    }
    /**
    * 转换
    * @param ffmpegPath
    * @param srcFile
    * @param destFile
    * @return
    */
    public boolean process(String ffmpegPath,File srcFile,File destFile){
    if(this.checkFile(srcFile)){
    String suffixName=this.getFileSuffix(srcFile);
    if(this.checkFileSuffix(suffixName)){
    List<String> commend =new ArrayList<String>();
    commend.add(ffmpegPath);//"d:\pcm\ffmpeg.exe"
    commend.add("-i");
    commend.add(srcFile.toString());
    commend.add("-ab");
    commend.add("64");
    // commend.add(" -acodec ");
    // commend.add("codec");
    commend.add("-ac");
    commend.add("2");
    commend.add("-ar");
    commend.add("22050");
    // 清晰度 -qscale 4 为最好可是文件大, -qscale 6就可以了
    commend.add("-b");
    commend.add("230");
    // commend.add("-s");
    // commend.add("350x240");
    commend.add("-r");
    commend.add("29.97");
    commend.add("-y");
    commend.add(destFile.toString());
    System.out.println(commend);
    System.out.println("----");
    try {
    ProcessBuilder builder = new ProcessBuilder();
    builder.command(commend);
    builder.start();
    return true;
    } catch (Exception e) {
    e.printStackTrace();
    return false;
    }
    }
    }else{
    System.out.println(srcFile+" is not a file!");
    }
    return false;

    }

    public static void main(String[] args) {
    File srcFile=new File("D:/pcm/baichuanyu.aac");
    File destFile=new File("D:/pcm/baichuanyu.wav");
    String ffmpegPath="d:/pcm/ffmpeg.exe";
    ConvertAudio ca=new ConvertAudio();
    if(ca.process(ffmpegPath, srcFile, destFile)){
    Logger log= Logger.getLogger("test.Test");
    log.log(Level.INFO, srcFile.getName()+" 已成功转换为 "+destFile.getName());
    }

    }

    }

  • 相关阅读:
    Spring MVC 复习笔记03
    Spring MVC 复习笔记02
    CSS之选择器
    Filedset
    Label标签
    Table标签
    列表标签
    CSS之img标签
    CSS之a标签锚点
    CSS之checkbox&radio&textarea&select
  • 原文地址:https://www.cnblogs.com/Wen-yu-jing/p/3535146.html
Copyright © 2011-2022 走看看