게임에 VOIP을 추가하는 비용이 부과되었으므로 (크로스 플랫폼이므로 Apple gamekit을 사용할 수 없음).녹음하는 동안 오디오 장치 remoteIO 재생
3 일 또는 4 일 동안, 오디오 유닛과 리모컨으로 머리를 감싸려고 노력 중입니다 ... 저는 수십 개의 예제를 간과했지만 그럴 때마다 간단한 알고리즘을 PCM을 입력하고 스피커에서 다시 재생하십시오. Apple의 문서에 따르면 VOIP을 수행하기 위해 kAudioSessionCategory_PlayAndRecord를 사용해야합니다.
UInt32 audioCategory = kAudioSessionCategory_PlayAndRecord;
status = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
sizeof(audioCategory),
&audioCategory);
XThrowIfError(status, "couldn't set audio category");
1) 그러나 playAndRecord는 항상 PerformThru 콜백 // aurioTouch를) 마이크에서 나오는 (또는 그 이상 excatly 무엇을 담당 할 것입니다 내가 잘못 오전) 나에게 (것?
은 내가 피어에 데이터를 전송하려는거야 그 콜백에서static OSStatus PerformThru(
void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData)
{
OSStatus err = AudioUnitRender(THIS->rioUnit, ioActionFlags, inTimeStamp, 1, inNumberFrames, ioData);
if (err)
printf("PerformThru: error %d\n", (int)err);
return err
}
AURender
을 제외한 아무것도하지 않고, 간단한 콜백이 (아니 직접 물론 있지만, 데이터는 그것에서 올 것이다) ...2 단위, 하나의 레코딩, 하나의 재생을 제외하고는 입력과 다른 출력을 어떻게 재생할 수 있는지 알 수는 없지만 Apple이 의도 한 것으로 보이지는 않습니다 (여전히 문서에 대한 찬성).
물론, 내가 그것에 대해 어떤 문서를 찾을 수 없습니다
는, 오디오 장치는 여전히누구나 할 수있는 가장 좋은 방법 일 것입니다 무슨에 생각을 할 것이다 ... 유엔 문서화 꽤 많이?
검색하는 동안이 샘플을 만들지 않아서 감사합니다. – TheSquad
게시물에 많은 도움을 주셔서 감사합니다. 오랫동안이 문제를 조사해 왔습니다. 이제 내 문제를 해결했습니다. 감사합니다. 새해 첫 해를 기원합니다. –
레코더 오디오 버퍼를 저장하는 방법, 공유해 주시겠습니까? –