在我的 android 应用程序(音频处理)中,我使用 long 类型变量来计算它被暂停的位置,但该应用程序给了我对于大型音频文件的奇怪结果。经过一番努力,我发现位置计算超出了 android 的限制。尽管 java 中的 long 类型的最小值为 -9,223,372,036,854,775,808,最大值为 9,223,372,036,854,775,807,但我想知道为什么我的计算超出了限制。
在浏览了一些帖子后,我发现 android 支持有限的值范围,这与 java 不同。但我的问题是如何在 android 中执行此计算?是否有任何其他 android 特定的数据类型?
这是我在我的应用程序中执行的计算: position=((bufferSize*currentPosition)/duration);