Моя цель - играть в локальный файл во время записи микрофона устройства записи с низкой задержкой. Я пришел в супермощную библиотеку, потому что из документации она обеспечивает функцию с малой задержкой. Я создал плеер, используя SuperpoweredAdvancedAudioPlayer и SuperpoweredAndroidAudioIO, и он отлично работает.Android Superpowered SDK Запись и воспроизведение одновременно
SuperpoweredAndroidAudioIO имеет конструкцию с параметрами boolean enableInput, boolean enableOutput. В настоящее время я использую enableInput == false и enableOutput == true. Когда я верю эти параметры в true - никакого эффекта.
Интересно, можно ли одновременно записывать файл и воспроизводить другой файл?
Также есть класс SuperpoweredRecorder в библиотеке, но он говорит не о прямой записи на диск. И нужно использовать методы createWAV, fwrite, closeWAV. Я пробовал реализовать рекордер отдельно, но качество не очень хорошее (это в два-три раза быстрее, чем реальная запись + звук разгоняется). Вот самый простой фрагмент кода для записи я использовал:
void SuperpoweredFileRecorder::start(const char *destinationPath) {
file = createWAV(destinationPath, sampleRate, 2);
audioIO = new SuperpoweredAndroidAudioIO(sampleRate, bufferSize, true, false, audioProcessing, NULL, bufferSize); // Start audio input/output.
}
void SuperpoweredFileRecorder::stop() {
closeWAV(file);
audioIO->stop();
}
static bool audioProcessing(void *clientdata, short int *audioInputOutput, int numberOfSamples, int samplerate) {
fwrite(audioInputOutput, sizeof(short int), numberOfSamples, file);
return false;
}
Вероятно, я не могу использовать сверхмощные для этой цели, и нужно просто сделать запись с OpenSL ES непосредственно.
Заранее благодарен!
SuperpoweredAndroidAudioIO позаботится об этом. Наличие нескольких экземпляров - ненужный объем кода. –
Не могли бы вы объяснить, как вы пишете вывод звука после применения эффектов в файле? –
@kasurd вы можете поделиться ссылкой GitHub того же с правильной реализацией. Это будет очень полезно .. –