如何在不使用AudioSystem的情况下计算FrameLength?

问题描述:

我将Java项目移植到Android。如何在不使用AudioSystem的情况下计算FrameLength?

如您所知,Android没有javax.sound软件包。

我需要计算frameLength。

我的声音文件大小为283KB。帧大小为4,帧率为44100,样本大小为16位。

当我只使用纯Java时,帧长度为69632。

你知道有什么方程式来得到这个吗?

谢谢。

对于原始PCM数据,基本上,每个样本有4个字节。

((283 KB)*(每KB 1024个字节))/(每帧4个字节)==> 72448

但是一个wav可以包括很多除了原始PCM,例如歌曲标题或艺术家信息。

Here's有关wav格式的更多信息。您可能必须以原始字节加载文件来解析标题,但标题的帧大小位于可预测的位置。

也许别人的Android体验已经炮制出一种方法。 也许谷歌应该把Java看作一个完整的实体,并正确地许可和实现它。