Discuz! BBS

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 53|回复: 0

AudioFormat.Builder 设置采样率和编码格式

[复制链接]

393

主题

556

帖子

3294

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3294
发表于 2025-10-14 05:27:43 | 显示全部楼层 |阅读模式
一个AudioFormat.Builder 设置采样率(sampleRate)的例子

  1. import javax.sound.sampled.AudioFormat;

  2. public class AudioFormatExample {
  3.     public static void main(String[] args) {
  4.         // 创建一个AudioFormat.Builder实例
  5.         AudioFormat.Builder builder = new AudioFormat.Builder()
  6.                 .setSampleRate(44100.0f) // 设置采样率为44.1kHz
  7.                 .setSampleSizeInBits(16) // 设置每个样本的位数为16位
  8.                 .setChannels(2)          // 设置声道数为立体声(2声道)
  9.                 .setEncoding(AudioFormat.Encoding.PCM_SIGNED); // 设置编码格式为有符号PCM

  10.         // 构建AudioFormat对象
  11.         AudioFormat format = builder.build();

  12.         // 输出格式信息
  13.         System.out.println("Audio Format: " + format);
  14.     }
  15. }
复制代码

在这个例子中,我们创建了一个 AudioFormat.Builder 实例,并设置了以下参数:
1、采样率:44.1kHz(常见于CD音质)
2、样本大小:16位
3、声道数:2(立体声)
4、编码格式:有符号PCM
最后通过 build() 方法构建出 AudioFormat 对象。
你可以根据需要修改这些参数来适应不同的音频格式要求。


AudioFormat 使用 public static final int ENCODING_PCM_16BIT 的例子:

以下是使用 AudioFormat 和 ENCODING_PCM_16BIT 的例子:
  1. import android.media.AudioFormat;

  2. // 创建AudioFormat实例
  3. AudioFormat audioFormat = new AudioFormat.Builder()
  4.     .setSampleRate(44100)                    // 设置采样率为44.1kHz
  5.     .setEncoding(AudioFormat.ENCODING_PCM_16BIT)  // 设置编码格式为16位PCM
  6.     .setChannelMask(AudioFormat.CHANNEL_IN_MONO)  // 设置单声道
  7.     .build();
复制代码

关键点说明:
1、AudioFormat.ENCODING_PCM_16BIT 是一个public static final常量,值为2
2、表示使用16位脉冲编码调制(PCM)格式
3、这是Android中最常用的音频编码格式之一
4、通常与44100Hz或48000Hz采样率配合使用
5、适用于大多数音频录制和播放场景


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-10-25 08:51 , Processed in 0.010018 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表