@engune
Разработчик сайтов и мобильных приложений

Как избавится от загрузки процессора в потоке OpenAL?

Вопрос к тем, кто использует 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
  • Вопрос задан
  • 264 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы