2

我正在使用 BASS.dll 库,我想做的就是将我正在播放的 MP3 的一部分“重定向”到另一个文件(可能是 MP3 或 WAVe)。我不知道如何开始?我试图使用帮助来找到答案,但仍然没有。我可以播放这个流。读取一些我需要的数据。现在我需要复制 ile 例如从 2:00 到 2:10(或按位置)。任何想法我应该如何开始?

问候,JK

4

1 回答 1

3

好吧,我不具体了解 BASS,但我对音乐播放和一般压缩数据格式了解一些,并且正确复制数据涉及中间解码步骤。这是您需要做的:

  1. 打开文件并找到正确的位置。
  2. 将音频解码到内存缓冲区中。缓冲区的大小应该是(LengthInSeconds * SamplesPerSecond * Channels * BytesPerSample)字节。因此,如果是 10 秒的 CD 质量音频,则为 10 * 44100 * 2(立体声)* 2(16 位音频)= 1764000 字节。
  3. 获取解码数据的缓冲区并将其输入 MP3 编码函数,并将生成的 MP3 保存到文件中。

如果 BASS 具有解码到外部缓冲区和将缓冲区编码为 MP3 的功能,那很好;您所要做的就是弄清楚要使用哪些。如果没有,您将不得不找到另一个用于 MP3 编码和解码的库。

另外,请注意代际损失。MP3 使用有损压缩,因此如果您多次解压缩和重新压缩数据,会损害音质。

于 2011-11-15T17:59:33.917 回答