2011-11-15 9 views
2

イムと私がやりたいすべてが別のファイルに例BASS_StreamCreateFileのために使用して遊んでMP3イムの一部を「リダイレクト」することである(かもしれませんMP3またはWAVe)。私は始める方法を知らない?私は答えを見つけるために援助を利用しようとしていますが、まだ何もありません。私はこのストリームを再生することができます。私が必要とするデータを読んでください。今私は2時から2時10分まで(または位置によって)ileをコピーする必要があります。 どのようなアイデアを始めたらいいですか?デルファイ:BASS.dll - BASS.dllライブラリを使用して別のファイルにMP3ストリームの一部をコピーする方法

よろしく、 J。K.

+1

1)正しい位置に移動してください。 2)データをバッファにコピーします。 3)出力ファイルを作成します。 4)バッファを出力ファイルにコピーします。どの部分に問題がありますか? –

+0

ファイルの一部をハードコピーしたくありません。 MP3の一部を別のMP3にコピーしたい。私は単にXバイトをコピーすることはできません。 –

答えて

3

まあ、私は特にBASSを知らないが、私は音楽の演奏や、一般的に圧縮されたデータ形式について少し知っているし、適切に周りのデータをコピーすることは、中間復号ステップを伴います。

  1. ファイルを開き、正しい位置を見つけます。
  2. オーディオをメモリ内バッファにデコードします。バッファのサイズは(LengthInSeconds * SamplesPerSecond * Channels * BytesPerSample)バイトにする必要があります。つまり、10秒のCD品質のオーディオであれば、10 * 44100 * 2(ステレオ)* 2(16ビットオーディオ)= 1764000バイトです。
  3. デコードされたデータのこのバッファを取り、MP3のエンコード機能にそれを供給し、ファイルへの結果のMP3を保存します。

BASSに外部バッファにデコードしたり、バッファをMP3にエンコードしたりする機能がある場合は、正常です。あなたがしなければならないことは、どのものを使うかを理解することだけです。そうでなければ、MP3のエンコーディングとデコードのために別のライブラリを探す必要があります。

また、generational lossに気を付けます。 MP3は非可逆圧縮を使用するため、データを何度も解凍して再圧縮すると音質が低下します。

+0

それは良い点です、ありがとう。それを試してみてください。そしてまた、別のライブラリを探してみてください。そして病気はあなたに知らせます - もしうまくいくなら、この答えを受け入れてください。 –

関連する問題