我正在开发适用于 android 的音频处理应用程序,并创建了一个用于反转WAV
文件的类。在我的 PC 上的 Java SE 上一切正常。但是,android上的代码非常慢“由于连续读取和写入少量数据,通常约为2个字节”。
这个过程几乎要花很长时间才能交付,我实际上相信将文件上传到服务器来处理可能是一种非常有效的方法。我尝试过使用通道、文件映射和缓冲 I/O。一切都以非常糟糕的表现告终。
我现在使用的逻辑:
- 读取前 44 个字节并将它们写入一个新文件“反向文件”。
- 计算要移动的块大小“每个样本的字节数 * 通道数”
- 从第一个文件的末尾读取该数据量并将其写入反向文件“我也尝试写入缓冲区,当它完全写入反向文件时”。
任何想法如何提高性能?我应该放弃目前的方法吗?