2011-11-15 21 views
2

即時通訊使用BASS.dll庫和我想要做的就是使用例如BASS_StreamCreateFile「重定向」部分MP3播放到另一個文件(可能成爲MP3或WAVe)。我不知道如何開始?我試圖使用幫助來找到答案,但仍然沒有。我可以玩這個流。閱讀我需要的一些數據。現在我需要從2:00到2:10(或按位置)複製ile。 任何想法我應該如何開始?德爾福:BASS.dll - 如何將MP3流的一部分複製到另一個文件

Regards, 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編碼和解碼庫。請注意0​​。 MP3使用有損壓縮,所以如果您多次解壓縮和重新壓縮數據,它會損害音質。

+0

這是一個很好的觀點,謝謝。我試試吧,我也嘗試爲此找到另一個庫。我會讓你知道 - 如果它行得通,我會接受這個答案。 –

相關問題