6

AVCaptureAudioDataOutput을 사용할 때 CMSampleBuffer에 저장된 데이터는 무엇입니까? 그것은 대리자 메서드 –captureOutput:didOutputSampleBuffer:fromConnection:을 통해 CMSampleBuffers를 전달하지만 CMSampleBuffer는 무엇입니까? PCM 또는 압축? 샘플 수, 채널 수 등은 무엇입니까? 어떻게 장치에서 오디오를 스트리밍하는 데 사용할 수 있습니까? 몇 시간 동안 인터넷 검색이 도움이되지 않았습니다. 당신이 ASBD이 방법으로 얻을 수있는 것처럼 사전오디오 CMSampleBuffer 형식

답변

7

에서

감사 같습니다

sampleBuffer-> 
    CMSampleBufferGetFormatDescription -> 
    CMAudioFormatDescriptionGetStreamBasicDescription 

을 다음 ASBD 등 것이다 세부 프레임 크기가 압축 된 경우, 엔디 언,

이것을 (오류 검사없이) 보여주고 샘플 속도를 얻으려면 :

CMSampleBufferRef cmSampleBuffer = ...; 

CMFormatDescriptionRef formatDescription = 
    CMSampleBufferGetFormatDescription(cmSampleBuffer); 

const AudioStreamBasicDescription* const asbd = 
    CMAudioFormatDescriptionGetStreamBasicDescription(formatDescription); 

double sampleRate = asbd->mSampleRate; 
+0

감사합니다! 나는 단지'CMSampleBufferGetFormatDescription'을 사용했고, 내가 궁금해하는 모든 정보를 – peetonn

+0

으로 보여 주었고, 내가받은 다른 매개 변수로'AVAudioOutput'을 구성 할 수 있습니까? – peetonn

+1

@ peetonn 안녕하세요. 귀하의 질문에 관한 :'AudioOutputUnit','AVAudioPlayer','AVAudioOutput'을 말할 때'AVCaptureAudioDataOutput'을 의미하는지 확신 할 수 없습니다. 나는 Core 및 AU 레이어에서 자랐습니다. 변환 오버 헤드를 피하기 위해 제공하고자하는 것은 무엇이든간에 추측 할 수 있습니다. 여기서 검색 할 가치가 있습니다. – justin

관련 문제