佚名通过本文主要向大家介绍了双缸异步发动机声音,异步调用失败,异步处理失败,异步请求失败,三相异步电动机等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 在cocos2dx 22 异步载入声音失败
描述:
在主线程里面预加载没问题,能够正常播放声音。但是使用多线程预加载后就没有声音了。
多线程代码如下:
解决方案1:
描述:
cocos2dx 音效 多线程cocos2dx多线程音效
在cocos2dx 2.2 异步载入声音失败,使用SimpleAudioEngine::sharedEngine()->preloadEffect(“soundfile.mp3”);
在主线程里面预加载没问题,能够正常播放声音。但是使用多线程预加载后就没有声音了。
多线程代码如下:
// function to start the thread
int audotest::threadStart()
{
int errCode=0;
do {
pthread_attr_t tAttr;
errCode=pthread_attr_init(&tAttr);
CC_BREAK_IF(errCode!=0);
errCode=pthread_attr_setdetachstate(&tAttr, PTHREAD_CREATE_DETACHED);
if(errCode!=0)
{
pthread_attr_destroy(&tAttr);
break;
}
errCode=pthread_create(&th_socket, &tAttr, thread_funcation, this);
} while (0);
return errCode;
}
// stuff to do in the new thread all in this function
void* audotest::thread_funcation(void *arg)
{
CCLOG("loading thread started...");
SimpleAudioEngine::sharedEngine()->preloadEffect(“soundfile.mp3”);
return NULL;
}
解决方案1:
有可能是因为多线程同时想要打开soundfile.mp3文件的原因,可以尝试建立一个lock 只允许单一线程访问的方式进行。
如有更多疑惑可以关注我。
路过..........................