gpt4 book ai didi

Delphi:BASS.dll - 如何将 MP3 流的一部分复制到另一个文件

转载 作者:行者123 更新时间:2023-12-02 03:56:13 25 4
gpt4 key购买 nike

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

问候,J.K.

最佳答案

嗯,我不太了解 BASS,但我对音乐播放和压缩数据格式有一点了解,并且正确复制数据涉及中间解码步骤。您需要执行以下操作:

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

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

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

关于Delphi:BASS.dll - 如何将 MP3 流的一部分复制到另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8136417/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com