私はAndroid用のオーディオ処理アプリに取り組んでおり、WAV
ファイルを反転するためのクラスを作成しました。私のPCのJavaSEではすべてがうまく機能します。ただし、Androidでは、「少量のデータの読み取りと書き込みを継続的に行うため、通常は約2バイト)、コードが非常に遅くなります。
処理するためにファイルをサーバーにアップロードすることが非常に効果的な方法であると私が実際に信じていることを実現するために、プロセスはほぼ永遠にかかります。チャネル、ファイルマップ、およびバッファリングされたI/Oを使用してみました。すべてが非常に悪いパフォーマンスで終わった。
私が現在使用しているロジック:
- 最初の44バイトを読み取り、それらを新しいファイル「リバースファイル」に書き込みます。
- 移動するブロックサイズを計算する「サンプルあたりのバイト数*チャネル数」
- 最初のファイルの終わりからその量のデータを読み取り、それをリバースファイルに書き込みます。「バッファに書き込んでみましたが、フルになったらリバースファイルに書き込みます」。
パフォーマンスを改善する方法はありますか?現在のアプローチをあきらめる必要がありますか?