`
mzhj
  • 浏览: 228076 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java :获取wav文件的编码格式,音频的通道数,采样频率,采样位数

阅读更多

 public static int toInt(byte[] b) {
       
return ((b[3] << 24) + (b[2] << 16) + (b[1] << 8) + (b[0] << 0));
    }
   
   
public static short toShort(byte[] b) {
       
return (short)((b[1] << 8) + (b[0] << 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 IOException {

        File f
= new File("c:\\bong.wav");
        RandomAccessFile rdf
= null;
        rdf
= new RandomAccessFile(f,"r");
       
        System.out.println(
"audio size: " + toInt(read(rdf, 4, 4))); // 声音尺寸
       
        System.out.println(
"audio format: " + toShort(read(rdf, 20, 2))); // 音频格式 1 = PCM
       
        System.out.println(
"num channels: " + toShort(read(rdf, 22, 2))); // 1 单声道 2 双声道
       
        System.out.println(
"sample rate: " + toInt(read(rdf, 24, 4)));  // 采样率、音频采样级别 8000 = 8KHz
       
        System.out.println(
"byte rate: " + toInt(read(rdf, 28, 4)));  // 每秒波形的数据量
       
        System.out.println(
"block align: " + toShort(read(rdf, 32, 2)));  // 采样帧的大小
       
        System.out.println(
"bits per sample: " + toShort(read(rdf, 34, 2)));  // 采样位数
       
        rdf.close();
       
    }

分享到:
评论
1 楼 redlwb225 2018-07-20  
刚好用到,总体可用,但是转int和short的方法有些问题,会导致到不对的数据,修正如下:

public static int toInt(byte[] b) {  

        return (((b[3] & 0xff) << 24) + ((b[2] & 0xff) << 16) + ((b[1] & 0xff) << 8) + ((b[0] & 0xff) << 0));  

}  

相关推荐

    wav文件pcm音频采样频率和通道数转换例子

    WAV是一种无损音频文件格式,广泛用于存储高质量的声音数据,而PCM(脉冲编码调制)是数字音频的基础,它将模拟音频信号转化为数字形式。本文将深入探讨如何通过编程实现WAV文件和PCM音频的采样频率和通道数转换。 ...

    Java实现多个wav文件合成一个的方法示例

    wav文件头中包含了wav文件的基本信息,包括文件格式、音频频率、音频通道数、音频位数等。在上面的代码中,我们使用了`resolveHeader`方法来解析wav文件头,并将其存储在`Header`对象中。 知识点3:Java中的编码...

    C#简单获取wav音频信息并播放

    在C#编程环境中,开发一个Winform应用来处理...以上就是使用C#获取和播放WAV音频文件的一些核心知识点,包括文件格式、元数据读取、音频播放以及UI设计等。在实际项目中,可能还需要考虑错误处理、用户交互优化等细节。

    JAVA 音频文件PCM转WAV Utils类

    总之,"JAVA 音频文件PCM转WAV Utils类"是Java音频处理领域的一个实用工具,它简化了音频格式转换的过程,使得开发人员可以更方便地在不同音频格式之间进行转换,特别是在需要从基本的PCM数据创建WAV文件的场合。

    调整音频采样率,一般可以将wav格式的各种采样率音频转换成8k采样的^_^-.rar

    本教程主要关注如何使用C#编程语言来调整音频文件的采样率,特别是将各种不同采样率的WAV格式音频转换为8kHz采样率的音频。 首先,我们需要了解音频采样率的基本概念。采样率是音频信号数字化过程中的关键参数,它...

    pcm音频文件和wav音频文件 工具下载

    PCM(Pulse Code Modulation,脉冲编码调制)和WAV是两种常见的音频文件格式,它们在数字音频处理领域有着广泛的应用。本篇文章将深入探讨这两种格式的特点、结构以及它们之间的关系。 PCM是一种基本的无损音频编码...

    wav音频文件格式分析

    **wav音频文件格式分析** 在数字音频领域,WAV(Waveform Audio File Format)是一种广泛使用的无损音频格式,尤其在Windows操作系统中是标准的音频文件格式。它是由微软和IBM共同开发的,遵循Resource Interchange...

    java源码 java获取音频文件 播放时长AudioDemo 2018127

    获取音频文件的时长通常涉及到计算音频流中的帧数,然后将帧数转换为秒数。音频文件的帧率(frames per second)和每帧的样本数量可以在`AudioFormat`对象中找到,`AudioInputStream`提供了获取这些信息的方法。例如...

    音频转换(WAV转换为PCM)

    WAV:wav是一种无损的音频文件格式,WAV符合 PIFF(Resource Interchange File Format)规范。所有的WAV都有一个文件头,这个文件头音频流的编码参数。WAV对音频流的编码没有硬性规定,除了PCM之外,还有几乎所有支持...

    wav文件封装pcm编码格式

    分析这个文件可以深入理解WAV文件的结构和PCM编码的工作原理,例如查看其采样率、位深度、通道数等信息,甚至可以使用音频编辑软件打开听一下声音质量。 了解这些基础知识对于开发者来说非常重要,因为它们有助于...

    WAV文件格式(用于解析WAV文件)

    WAV文件格式是一种无损音频编码格式,由微软与IBM共同开发,主要用于存储数字音频数据。它是基于RIFF(Resource Interchange File Format)文件结构的,这种格式在Windows操作系统环境中非常常见。WAV文件能够忠实...

    wav音频测试用例.rar_wav_wav ceshiwenjian_wav 测试音频_wav 音频_wav测试音频

    WAV是一种常见的音频文件格式,由Microsoft开发,以无损方式存储音频数据,提供高质量的声音表现。在IT领域,这种类型的文件经常被用于硬件或软件的音频系统测试,以确保它们能正确地播放各种音频样本。 描述中提到...

    wav音频文件 测试文件

    在IT领域,音频文件是数字媒体的一个重要组成部分,而`WAV`(Waveform Audio Format)音频文件格式是其中一种常见的无损音频格式。本文将深入探讨`WAV`音频文件,包括其基本原理、特点、用途以及如何进行测试。 `...

    wav音频文件格式分析与数据获取_罗海涛1

    【wav音频文件格式详解】 wav音频文件是一种二进制音频格式,源于微软公司,也被称为波形文件。它是数字音频的原始格式,广泛应用于语音信号处理、语音识别、语音合成等多个领域。wav文件未经过任何压缩,因此保留...

    wav.rar_Wav文件_wav_wav 格式_wav文件格式_wav音频

    WAV(Waveform Audio File Format)是Microsoft公司和IBM公司共同开发的一种声音文件格式,主要用于存储未压缩的音频数据。它是一种标准的数字音频容器,支持多种采样率和位深度,因此能提供高质量的音频体验。在...

    java对wav音频文件头分析代码

    java对wav音频文件头分析代码,解析wav音频文件的组成部分以及每个部分的相应的值和类型

    WAV.rar_wav format_wav文件格式_wav音频_音频 帧_音频wav

    WAV(Waveform Audio Format)是由微软和IBM共同开发的一种声音文件格式,是PC平台上最原始的音频文件格式之一。它以其无损的音质和广泛的兼容性,在音频处理和音乐制作领域中占据着重要的地位。 **1. WAV文件结构*...

    阿拉伯数字的wav音频文件,wav是数字音频文件格式吗源码.zip

    描述中提到的“wav是数字音频文件格式吗源码”,暗示了可能包含有用于验证或解释WAV是否为数字音频文件格式的编程代码。在计算机科学和音频处理领域,源码是程序员编写的未编译程序,用于控制音频数据的读取、处理和...

    C++读取WAV格式音频文件

    3. **解析fmt块**:读取fmt块的大小,然后读取格式信息,如音频格式(一般为PCM),通道数,采样率,每秒字节数,每帧字节数,位深度等。 4. **寻找data块**:遍历文件,直到找到"data"标识,读取data块的大小。 5...

    pcm,wav,amr三种格式8K和16K音频文件

    WAV(Waveform Audio Format)是微软和IBM共同开发的一种音频文件格式,基于PCM编码。WAV文件通常保留原始音频的所有数据,因此是无损的,但这也意味着它们的文件大小较大。8KHz和16KHz的WAV文件可以满足不同应用...

Global site tag (gtag.js) - Google Analytics