获取wav音频时长,支持本地和网络音频

Posted yangyanbo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取wav音频时长,支持本地和网络音频相关的知识,希望对你有一定的参考价值。

package com.puxinwangxiao.mts.util;

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.Audiosystem;
import javax.sound.sampled.Clip;
import java.io.File;
import java.net.URL;

public class AudioUtil {

    /**
     * 获取音频文件时长
     *
     * @param wavFilePath wav文件路径,支持本地和网络HTTP路径
     * @return 时长/微秒,可 /1000000D 得到秒
     * @throws Exception
     */
    public static long getMicrosecondLengthForWav(String wavFilePath) throws Exception {

        if (wavFilePath == null || wavFilePath.length() == 0) {
            return 0;
        }
        String bath = wavFilePath.split(":")[0];
        Clip clip = AudioSystem.getClip();
        AudioInputStream ais;
        if ("http".equals(bath.toLowerCase())||"https".equals(bath.toLowerCase())) {
            ais = AudioSystem.getAudioInputStream(new URL(wavFilePath));
        } else {
            ais = AudioSystem.getAudioInputStream(new File(wavFilePath));
        }
        clip.open(ais);
        return clip.getMicrosecondLength();
    }


    public static void main(String[] args) throws Exception {
        String wavUrl = "http://data.huiyi8.com/2017/gha/08/19/1969.wav";

        long microsecondLengthForWav = getMicrosecondLengthForWav(wavUrl);
        System.out.println(microsecondLengthForWav);
    }
}

  

以上是关于获取wav音频时长,支持本地和网络音频的主要内容,如果未能解决你的问题,请参考以下文章

java 获取音频视频文件时长代码示例

java 获取音频视频文件时长代码示例

WAV音频文件获取时长工具类

如何利用matlab获取音频文件的时长

java 读取音频/视频 文件时长

音频合并,剪切,降采样,时长等处理