Вопрос

Я хотел бы захватить исходящий звук из игры и записывать его в аудиофайл, как он играет.Это возможно в рамках в 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, как это часть его заголовка.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top