`

获取视频播放总时长

    博客分类:
  • java
 
阅读更多
来源地址:http://bbs.csdn.net/topics/340267510


/**
* 获取视频播放总时长
*
* @param fileName
*            视频名称
* @param dir
*            存放视频的目录
* @return
* @throws IOException
*/
public static long getVideoPlayTime(String videoName, File dir) throws IOException{
    Process p = null;
    if (isWindowsSystem()) {
        p = Runtime.getRuntime().exec(
                "cmd /c timelength.bat " + "\"" + dir.getPath() + "/" + videoName
                        + ".wmv\"");
    } else {
        String cmd = "sh " + getMplayerBinPath() + "/timelength.sh " + dir.getPath()+ "/" + videoName + ".wmv";
        p = Runtime.getRuntime().exec(cmd);
    }
    
    InputStream is = p.getInputStream();
    InputStreamReader isr = new InputStreamReader(is);
    BufferedReader br = new BufferedReader(isr);
    String line = null;
    while ((line = br.readLine()) != null) {
        if(line != null){
            if(line.startsWith("ID_LENGTH")){
                String second = line.split("=")[1].trim();
                int pos = 0;
                if((pos = second.indexOf(".")) != -1){
                    // 去除小数点后的数字
                    return Long.parseLong(second.substring(0, pos));
                }else{
                    return Long.parseLong(second);
                }
            }
        }
        
    }
    
    try {
        br.close();
        isr.close();
        is.close();
    } catch (Exception e) {

    }
    return 0;
}

/**
* 格式化视频播放时长
* @param time
* @return
*/
public static String formatVideoTimeLength(long time) {
    long s = time % 60;
    long m = (time / 60) % 60;
    long h = time / 3600;
    return toTimeString(h) + ":" + toTimeString(m) + ":" + toTimeString(s);
}



















获取音频时长
import java.io.File;
import java.io.IOException;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;

public class AudioLength {

    public static void main(String[] args) throws LineUnavailableException,
            UnsupportedAudioFileException, IOException {
        File file = new File("d:/test.wav");
        Clip clip = AudioSystem.getClip();
        AudioInputStream ais = AudioSystem.getAudioInputStream(file);
        clip.open(ais);
        System.out.println( clip.getMicrosecondLength() / 1000000D + " s" );
    }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics