на работе, мы не можем использовать alSourcePause()
для приостановки звука, и в любом случае нам может потребоваться запустить звук со смещением.
Мы выполняем «резюме», выполняяalSourcei(this->sourceId, AL_SAMPLE_OFFSET, this->sampleOffset);
со смещением выборки, которое мы получили с помощью alGetSourcei()
.Мы пытались использовать AL_SEC_OFFSET
, AL_BYTE_OFFSET
и AL_SAMPLE_OFFSET
- безрезультатно.Мы прочитали, что источник звука должен находиться в «начальном» состоянии;воссоздание источника и присоединение буфера, а затем попытка пропустить также не помогли.
Изменение пропуска буфера AL_BYTE_OFFSET
не является решением, поскольку это усложняет зацикливание.пропуск на медленных машинах;у нас возникли проблемы с реализацией многопоточного воспроизведения.
Поскольку у нас ограниченный график работы, каков наилучший способ пропустить часть простого источника звука в OpenAL в OS X?Исходный код доступен в нашем репозитории Sourceforge .