Setfinishcallback 在播放结束后没有被调用。

需要对循环中的音乐作特殊处理 。 发现了这个接口函数 , 在使用的过程中,发现这个函数没有被调用。
平台win32 , 框架3.8.1 ,语言 lua 。

你是在真机上测试的发现没调用,还是在win32模拟器上测试的没调用啊

昨天看了底下的代码 :
AudioCache 中
void AudioCache::readDataTask()
{

if (pcmDataSize <= PCMDATACACHEMAXSIZE)
{

}
else
{
_queBufferFrames = _sampleRate * QUEUEBUFFER_TIME_STEP;
_queBufferBytes = _queBufferFrames * _bytesPerFrame;

}

播放的mp3文件比较 大 , 音乐播放结束的时候 ,有个线程AudioPlayer::rotateBufferThread执行了_readForRemove = true;

然后 AudioEngineImpl 的update会执行下面的
if (player._readForRemove && !player._ready)
{
it = _audioPlayers.erase(it);
}
回调也就没有了。

修改 变量 PCMDATACACHEMAXSIZE 可以达到回调起作用。 但 感觉这个不是合适的作法。
对openal不了解 , 如何实现循环播放的实现 部分没能找到 。
需求是对循环间隔的时间做处理 和 做一些渐入渐出的效果。

当音频文件比较大的时候, 在下面代码块中,
if (player._readForRemove && !player._ready)
{
it = _audioPlayers.erase(it);
}
音频将会被移除,在部分如果有回调 启用回调之后在移除的 话 有什么影响吗 。 设计的时候考虑的情况是怎么样的。因为没有具体到各个方面,这里有些疑惑。