我正在尝试使用 OpenAl 在 c ++ 项目中播放声音。我想播放一首循环播放的音乐曲目。当文件是 .wav 或 .mp3 320 kbps 时,可以正常运行。但是当尝试使用 .mp3 32 kbps 时,不会循环。
另一件事是,如果我在使用.mp3时将 AL_LOOPING 标志设置为true,它将启动1秒,然后重新启动轨道。当播放.wav
时,该标志工作正常我的代码是
alGenSources(1, &__alSource);
openAlResult = alGetError();
if (openAlResult != AL_NO_ERROR)
{
return ConvertError(openAlResult);
}
alSourcef (__alSource, AL_PITCH, 1.0);
alSourcef (__alSource, AL_GAIN, 1.0);
alSource3f(__alSource, AL_POSITION, 0.0, 0.0, 0.0);
alSource3f(__alSource, AL_VELOCITY, 0.0, 0.0, 0.0);
alSource3f(__alSource, AL_DIRECTION, 0.0, 0.0, 0.0);
alSourcef(__alSource, AL_ROLLOFF_FACTOR, 0.0);
alSourcei(__alSource, AL_SOURCE_RELATIVE, AL_TRUE);
// only works for WAV
alSourcei(__alSource, AL_LOOPING, AL_TRUE);
openAlResult = alGetError();
if (openAlResult != AL_NO_ERROR)
{
return ConvertError(openAlResult);
}
有关32kbps格式的.mp3的想法或不会循环的方式吗?
由于