Вопрос к тем, кто использует OpenAL, OpenSL для проигрывания музыки.
Как побороть загрузку процессора - чисто графика 8% грузит устройство.
Когда включаешь поток звука - появляется +50-60% загрузки. Как правильно сделать поток обработки - точнее как организовать паузу?
void AudioManager::mainLoop()
{
pthread_mutex_t mutex;
pthread_cond_t cond;
for (;;)
{
_locker.lock();
if (!_paused)
updateStream();
_locker.unlock();
struct timeval now;
struct timespec wtm;
gettimeofday(&now,NULL);
wtm.tv_sec = now.tv_sec+5;
wtm.tv_nsec = (now.tv_usec+1000UL*400)*1000UL;
pthread_mutex_lock(&mutex);
pthread_cond_timedwait(&cond, &mutex, &wtm);
pthread_mutex_unlock(&mutex);
}
}
пробовал uspleep, nanospleep эффект тот же. Большая загрузка процессора. Как организовать нормально подгрузку стрима?
Или может есть хороший пример С++ для музыки OpenAL \ OpenSL