1

我正在尝试使用BASS 库进行一些音频编辑,所以如果有人熟悉该库,希望可以帮助我。

我正在使用的功能是

Bass.BASS_StreamCreateFile(filename, offset, length, flags);

对于一点背景,我正在使用 Bass.net 包装器,正在处理所有 mp3 文件。我使用这个函数的实际代码是:

int baseStream = Bass.BASS_StreamCreateFile(filename, startTimeBytes, durationBaseBytes, BASSFlag.BASS_STREAM_PRESCAN | BASSFlag.BASS_STREAM_DECODE | BASSFlag.BASS_SAMPLE_FLOAT);

只要偏移量 (startTimeBytes) 等于 0,就可以正常创建流,但只要偏移量不为零,该方法就会返回 0,并且给出的错误代码是 BASS_ERROR_FILEFORM。但是,使用的文件在没有偏移量(偏移量 = 0)的情况下工作正常。

也许我正在使用的标志有问题或其他什么?

4

1 回答 1

1

您的 mp3 文件包含没有偏移的帧。所以使用0偏移量。
要设置流的播放位置,请使用BASS_ChannelSetPosition ()

  1. 创建一个偏移量 = 0 的流;
  2. 根据使用BASS_ChannelSeconds2Bytes()的通道格式,将时间(秒)位置转换为字节;
  3. 使用BASS_ChannelSetPosition()BASS_POS_BYTE模式设置位置。
于 2013-05-28T07:22:36.213 回答