6

AVCaptureAudioDataOutput kullanırken CMSampleBuffer'da saklanan veriler nedir? CMSampleBuffers'ı temsilci yöntemi –captureOutput:didOutputSampleBuffer:fromConnection: aracılığıyla iletir, ancak CMSampleBuffer içinde ne var? PCM veya sıkıştırılmış? Numune sayısı, kanal sayısı, vb. Nelerdir? Bu cihazdan ses akışı için nasıl kullanılabilir? Birkaç saatliğine bakma bana yardımcı olmadı. Eğer ASBD bu şekilde alabilirsiniz gibi peşinSes CMSampleBuffer biçimi

cevap

7

yılında

Teşekkür görünür:

sampleBuffer-> 
    CMSampleBufferGetFormatDescription -> 
    CMAudioFormatDescriptionGetStreamBasicDescription 

sonra ASBD vb detaylandırarak çerçeve boyutları, sıkıştırılmış ise, endian,

Bunu göstermek için (hata kontrolü olmadan) ve örnek hızını almak için:

CMSampleBufferRef cmSampleBuffer = ...; 

CMFormatDescriptionRef formatDescription = 
    CMSampleBufferGetFormatDescription(cmSampleBuffer); 

const AudioStreamBasicDescription* const asbd = 
    CMAudioFormatDescriptionGetStreamBasicDescription(formatDescription); 

double sampleRate = asbd->mSampleRate; 
+0

Teşekkürler! Ben sadece "CMSampleBufferGetFormatDescription" kullandı ve ben – peetonn

+0

merak ediyorum tüm bilgileri gösterdi ve aldım farklı parametreleri ile 'AVAudioOutput 'yapılandırmak mümkün mü? – peetonn

+1

@peetonn Birşey değil. Sorunuzla ilgili olarak: 'AVAudioOutput' derken“ AudioOutputUnit ”,“ AVAudioPlayer ”veya“ AVCaptureAudioDataOutput ”anlamına gelmediğinden emin değilim. Çekirdek ve AU katmanlarında büyüdüm; Dönüşüm yükünden kaçınmak için ne sağlamak istiyorsa onu tahmin ediyorum. Burada arama yapmaya değer. – justin