如何在BASS库中使用StreamCreateFile的偏移参数?

时间:2013-05-21 02:42:09

标签: c# bass

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

我正在使用的功能是

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);

每当offset(startTimeBytes)等于0时,流就会很好地创建,但只要偏移量非零,该方法就返回0,并且给出的错误代码是BASS_ERROR_FILEFORM。但是,使用的文件没有偏移(偏移= 0)

也许我正在使用的旗帜有什么问题?

1 个答案:

答案 0 :(得分:1)

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

  1. 使用offset = 0;
  2. 创建一个流
  3. 使用 BASS_ChannelSeconds2Bytes() ;
  4. ,根据频道的格式将时间(秒)位置转换为字节
  5. 使用 BASS_ChannelSetPosition()BASS_POS_BYTE模式设置位置。