Я пытался воспроизвести аудиофайл из буфера (короткое int) с помощью Superpowered Audio SDK. В настоящее время при каждом вызове функции процесса я передаю выходной буфер и записываю его так:
getBufferData(short int *output, unsigned int samples) {
memcpy(output, buffer + bufferPtr, samples * sizeOf(short int));
bufferPtr += samples;
}
В результате звук распознается как песня, которую я пытаюсь воспроизвести, но сильно искажен.
Я проверил, что данные в буфере соответствуют моим ожиданиям, записав их в файл wav и протестировав воспроизведение таким образом.
Я догадываюсь, что процедура memcpy может быть слишком интенсивной, чтобы вызывать ее так часто, но я не смог найти альтернативы.
Я также понимаю, что этот метод воспроизведения не является подходящим способом воспроизведения аудиофайла с использованием сверхмощности, но для моего случая использования он необходим.
Будем признательны за любые рекомендации!