如何在不使用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看作一个完整的实体,并正确地许可和实现它。