我继承了一些使用 Java 的 SourceDataLine Sound API 的代码。
下面是他们如何设置 AudioFormat 对象。帧速率和采样率设置为相同似乎很奇怪。这有任何意义吗?另外,拥有 20000000 帧速率或采样率有什么意义吗?我们的耳朵不是最高可达20000吗?
AudioFormat af = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, 20000000, 16, 1, 2, 20000000, true);
最佳答案
如果流以 PCM 格式编码且未压缩,则一帧包含每个 channel 的一个时间索引的样本。如果流被压缩,则一帧包含每个 channel 的样本,但针对一个或多个时间索引。帧的具体结构取决于压缩类型。
查看 AudioFormat 类定义以了解更多详细信息: http://download.oracle.com/javase/6/docs/api/javax/sound/sampled/AudioFormat.html
大多数音响系统认为人耳的最高频率为 22KHz,这就是为什么采样频率为 44KHz(根据 Niquist 规则)。
关于java - 关于 Java Sound API 的采样率和帧速率大小的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5626088/