Как воспроизвести звуковой файл с помощью команды openAL с определенного момента времени (ввод времени двойной или с плавающей запятой) - PullRequest
1 голос
/ 21 марта 2011

Я хочу знать, есть ли в openAL команда, которую можно использовать для воспроизведения звукового файла с определенного момента времени (время поиска). Например, если я использую слайдер и сдвигаю его, как только я отпускаю слайдер, звуковой файл должен воспроизводиться именно с этого момента.

Я реализовал это для iOS. Но я не нашел этот метод openAL, который может воспроизводить файл с определенного момента времени.

alSourcei(sourceID, AL_BUFFER, 0);
alSourcei(sourceID, AL_BUFFER, bufferID);



// Set the pitch and gain of the source
alSourcef(sourceID, AL_PITCH, aPitch);
alSourcef(sourceID, AL_GAIN, aGain * fxVolume);

if(aLoop) {
    alSourcei(sourceID, AL_LOOPING, AL_TRUE);
} else {
    alSourcei(sourceID, AL_LOOPING, AL_FALSE);
}
// Set the source location
alSource3f(sourceID, AL_POSITION, aLocation.x, aLocation.y, 0.0f);
**Here we play the sound ***

alSourcePlay(sourceID);

Выполнение вышеуказанного кода всегда воспроизводит звуковую дорожку с начальной позиции. Я хочу знать, есть ли какой-нибудь метод в openAL, который может искать трек в определенный момент времени.

1 Ответ

1 голос
/ 26 марта 2011

Вам нужно реализовать поиск. Это может быть довольно сложно сделать в зависимости от того, насколько точно вы хотите, чтобы поиск был (например, до ближайшего кадра или поиска между границами кадра).

Как вы реализуете это, зависит от того, как представлены ваши звуковые данные. Ранее я реализовал это для потоковой передачи данных ogg vorbis на openal. Для этого я использовал реализованный ov_seek как часть ov_open_callbacks .

На devmaster есть руководство по потоковой передаче OpenAL, которое мне показалось полезным.

...