gpt4 book ai didi

Java轻松使用工具类实现获取wav时间长度

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 33 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Java轻松使用工具类实现获取wav时间长度由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

获取wav格式音频时长.

  。

Maven依赖

      <dependency>          <groupId>org</groupId>          <artifactId>jaudiotagger</artifactId>          <version>2.0.1</version>      </dependency>

  。

工具类

import org.jaudiotagger.audio.wav.util.WavInfoReader;import java.io.File;import java.io.IOException;import java.io.RandomAccessFile;/** @Author huyi @Date 2021/9/30 14:46 @Description: 音频工具类 */public class AudioWavUtils {public static void getWavInfo(String filePath) throws Exception {  File file = new File(filePath);  WavInfoReader wavInfoReader = new WavInfoReader();  RandomAccessFile raf = new RandomAccessFile(file, "r");  // wav音频时长  long duration = (long) (wavInfoReader.read(raf).getPreciseLength() * 1000);  // wav音频采样率  int sampleRate = toInt(read(raf, 24, 4));  System.out.println("duration -> " + duration + ",sampleRate -> " + sampleRate);  raf.close();}public static int toInt(byte[] b) {  return ((b[3] << 24) + (b[2] << 16) + (b[1] << 8) + (b[0]));}public static byte[] read(RandomAccessFile rdf, int pos, int length) throws IOException {  rdf.seek(pos);  byte[] result = new byte[length];  for (int i = 0; i < length; i++) {    result[i] = rdf.readByte();  }  return result;}public static void main(String[] args) throws Exception {  getWavInfo("E:\\csdn\\dzgz.wav");}}

输出结果:

Java轻松使用工具类实现获取wav时间长度

duration为音频时长,单位毫秒,sampleRate为采样率.

  。

说明

该工具类只能处理单声道音频,双声道会报错,多声道属于立体声范畴,提醒一下.

Java轻松使用工具类实现获取wav时间长度

到此这篇关于Java轻松使用工具类实现获取wav时间长度的文章就介绍到这了,更多相关Java 获取wav时长内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://huyi-aliang.blog.csdn.net/article/details/120566710 。

最后此篇关于Java轻松使用工具类实现获取wav时间长度的文章就讲到这里了,如果你想了解更多关于Java轻松使用工具类实现获取wav时间长度的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com