Может ли оперировать сам запись?
Вопрос
Я хотел бы захватить исходящий звук из игры и записывать его в аудиофайл, как он играет.Это возможно в рамках в OpenSL?Хотелось, что подключив выводу MIX к аудиоревере или что-то?
Спасибо в Advanced.
Решение
Вы можете зарегистрировать обратный вызов в очередь и получить выходной буфер до / после его транспортировки в буферную очередь для вывода.Вы можете иметь Wavbuffer (короткий массив длины размера буфера), который записывается на каждое enqueureing нового буфера.Содержимое этого буфера затем записывается в файл.
outBuffer = p->outputBuffer[p->currentOutputBuffer]; // obtain float buffer
for ( int i = 0; i < bufferSize; ++i )
wavBuffer = ( short ) outBuffer[ i ] * 32768; // convert float to short
// now append contents of wavBuffer into a file
.
Основная настройка OpenSL для обратного вызова очереди объясняется в некоторых деталях На этой странице
И очень основные средства создания файла WAV в C ++ можно найти здесь Обратите внимание, чтоВы должны иметь довольно окончательное представление о фактическом размере общего файла WAV, как это часть его заголовка.