私のAndroidアプリケーション(オーディオ処理)では、長い型変数を使用して一時停止されている位置を計算しますが、アプリケーションは大きなオーディオファイルに対して奇妙な結果をもたらしました。少し努力した後、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);