快速频繁的播放和停止音效很大几率造成崩溃
跟踪了一下代码发现android 的AudioEngineImpl里面的play2d方法有点问题
std::string filePath = *AudioEngine::_audioIDInfoMap[id].filePath
设置回调在_audioIDInfoMap里面并找不到这个id
AudioMixerController 里输出这个 Doesn’t have enough tracks: 就跪了
目前是这么解决的
int id = audioId;
auto it = AudioEngine::_audioIDInfoMap.find(id);
if (it == AudioEngine::_audioIDInfoMap.end())
{
ALOGV(“Ignore null path: %d”, static_cast(id));
return;
}
但是不知道为什么会找不到这个id
还请引擎团队的大神们帮忙解决一下
@zilong@minggo
help
请问有大神知道怎么解决么。。。
mark一下 升级了一周 暂时只遇到了几次
感谢感谢 我去看看先
我也是崩在这,最终使用了之前版本的代码就好了,供参考
int id = player->getId();
ALOGV("Removing player id=%d, state:%d", id, (int)state);
auto iter = _callbackMap.find(id);
if (iter != _callbackMap.end())
{
if (state == IAudioPlayer::State::OVER)
{
iter->second(id, *AudioEngine::_audioIDInfoMap[id].filePath);
}
_callbackMap.erase(iter);
}
AudioEngine::remove(id);
_audioPlayers.erase(id);
github上最新的代码修复了这个问题