opensl 자체를 기록 할 수 있습니까?
문제
게임에서 나가는 오디오를 캡처하고 재생할 때 오디오 파일에 기록하고 싶습니다.OpenSL의 프레임 워크 내에서 가능합니까?OutputMix를 AudioRecorder 또는 뭔가에 연결하여
고급 감사.
해결책
큐에 콜백을 등록하고 출력을 위해 버퍼 대기열에 대기열에 대기중인 전후에 출력 버퍼를 얻을 수 있습니다.새 버퍼의 각 대기업에 기록되는 WAVBBUFFER (버퍼 크기의 길이)를 가질 수 있습니다.이 버퍼의 내용은 파일에 기록됩니다.
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 설정은 이 페이지에서
및 C ++에서 WAV 파일을 만드는 매우 기본적인 방법은 여기 총 WAV 파일의 실제 크기에 대한 꽤 확실한 아이디어가 있어야합니다.
제휴하지 않습니다 StackOverflow