Воспроизведение звука из буфера с использованием Superpowered SDK

Я пытался воспроизвести аудиофайл из буфера (короткое int) с помощью Superpowered Audio SDK. В настоящее время при каждом вызове функции процесса я передаю выходной буфер и записываю его так:

getBufferData(short int *output, unsigned int samples) {
    memcpy(output, buffer + bufferPtr, samples * sizeOf(short int));
    bufferPtr += samples;
}

В результате звук распознается как песня, которую я пытаюсь воспроизвести, но сильно искажен.

Я проверил, что данные в буфере соответствуют моим ожиданиям, записав их в файл wav и протестировав воспроизведение таким образом.

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

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

Будем признательны за любые рекомендации!


person David A.    schedule 19.03.2017    source источник


Ответы (1)


Возможно, у вас проблема со стерео / моно. Пример, который вы описываете, отлично подходит для моно.

person Gabor Szanto    schedule 20.03.2017