OpenAl mp3循环不工作 我试图用OpenAL在C++项目中播放声音。我想播放一首循环播放的音乐曲目。当文件是.wav或.mp3,速度为320 kbps时,这就可以正常工作了。但当以32 kbps的速度尝试.mp3时,它将不会循环

OpenAl mp3循环不工作 我试图用OpenAL在C++项目中播放声音。我想播放一首循环播放的音乐曲目。当文件是.wav或.mp3,速度为320 kbps时,这就可以正常工作了。但当以32 kbps的速度尝试.mp3时,它将不会循环,c++,audio,mp3,openal,C++,Audio,Mp3,Openal,另一件事是,如果我在使用.mp3时将alu循环标志设置为true,它将启动1秒,然后重新启动曲目。当播放.wav时,旗帜工作正常 我的代码是 alGenSources(1, &__alSource); openAlResult = alGetError(); if (openAlResult != AL_NO_ERROR) { return ConvertError(openAlResult); } alSourcef (__alSource, AL_PITCH, 1.0);

另一件事是,如果我在使用.mp3时将alu循环标志设置为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);
}
关于32 kbps格式的.mp3或者它不会循环的方式有什么想法吗


谢谢

也许你得打电话给alSourcePlay\uu alSource;设置循环后

alGenSources(1, &__alSource);
阿尔及利亚资源1和阿尔资源; openAlResult=algeorror; 如果openAlResult!=无误{ 返回ConvertErroropenAlResult; } alSourcef_uuuAlsource,Aluu音高,1.0; alSourcef uuu alSource,AL_u增益,1.0; alSource3f_uuALSOURCE,ALU位置,0.0,0.0,0.0; alSource3f_uuAlSource,AL_速度,0.0,0.0,0.0; alSource3f_uuuALSOURCE,AL_u方向,0.0,0.0; alSourcef_uuuALSOURCE,AL_衰减系数,0.0; alSourcei_uuAlsource,AL_SOURCE_RELATIVE,AL_TRUE; //仅适用于WAV alSourcei_uuualsource,AL_LOOPING,AL_TRUE; alSourcePlay_uuALSOURCE; openAlResult=algeorror; 如果openAlResult!=无误{ 返回ConvertErroropenAlResult; }