3

ウェーブスペクトルを使用してウェーブファイルをカットアンドコピーアンドペーストできるjavaを使用してウェーブファイルエディタを作成しています。そのために、ウェーブファイルをバイト単位で読み取り、それらをダブルアレイに変換しています。小さなファイルでは正常に機能します。大きなWaveファイルを一度にロードすると、その特定のファイルのサイズのフレーム長の二重配列を作成する必要があるため、ヒープのメモリ不足エラーがスローされます。Waveファイルを一度に完全なファイルをロードする以外の部分にロードするような代替手段はありますか?私はすでにそれを試しました、しかし次のパートをロードすると、前のパートを編集または再生できませんでした。

ウェーブファイルをチャンクにロードしてメモリ不足エラーなしでエディタにロードする方法と、メモリの問題なしで操作(切り取り、コピー、貼り付け)を行う方法を教えてください。サンプルコードを教えてください。よろしくお願いします。返信を待っています

4

2 に答える 2

0

あなたが尋ねたことから、あなたが正確に何を意味するのかを知るのは難しいです。バイトは8ビットで、ダブルは64ビットなので、アプリケーションを呼び出すときに、ダブル配列ではなくバイト配列を使用することも検討してください。また、JVMのメモリサイズを増やすことも検討してください。

さらにヘルプが必要な場合は、コードを投稿してください...

于 2013-02-21T09:53:33.447 に答える
0

ファイルのチャンクをロードできます。多分java.nioを調べてください。ただし、保存時にウェーブの順序またはファイル サイズが変更される場合は、変更を保存するたびに完全なファイルを書き込む必要があります。次に、編集したいチャンクをリロードできます(ファイル内の位置が変更された可能性があるため、それを追跡する必要があります)

于 2013-02-21T10:07:17.443 に答える