6

AVCaptureAudioDataOutput का उपयोग करते समय CMSampleBuffer में संग्रहीत डेटा क्या है? यह प्रतिनिधि विधि –captureOutput:didOutputSampleBuffer:fromConnection: के माध्यम से CMSampleBuffers प्रदान करता है लेकिन CMSampleBuffer के अंदर क्या है? पीसीएम या संपीड़ित? नमूने, चैनलों की संख्या आदि क्या हैं? डिवाइस से ऑडियो स्ट्रीमिंग के लिए इसका उपयोग कैसे किया जा सकता है? कई घंटों के लिए गुगल ने मेरी मदद नहीं की।ऑडियो CMSampleBuffer प्रारूप

अग्रिम

उत्तर

7

धन्यवाद लगता है कि आप ASBD इस तरह से प्राप्त कर सकते हैं:

sampleBuffer-> 
    CMSampleBufferGetFormatDescription -> 
    CMAudioFormatDescriptionGetStreamBasicDescription 

तो ASBD होगा विस्तार फ्रेम आकारों, अगर यह संकुचित है, endianness, आदि

इसे प्रदर्शित करने के लिए (बिना त्रुटि जांच के) और नमूना दर प्राप्त करें:

CMSampleBufferRef cmSampleBuffer = ...; 

CMFormatDescriptionRef formatDescription = 
    CMSampleBufferGetFormatDescription(cmSampleBuffer); 

const AudioStreamBasicDescription* const asbd = 
    CMAudioFormatDescriptionGetStreamBasicDescription(formatDescription); 

double sampleRate = asbd->mSampleRate; 
+0

धन्यवाद! मैंने केवल 'CMSampleBufferGetFormatDescription' का उपयोग किया था और यह सभी जानकारी दिखाती है कि मैं – peetonn

+0

सोच रहा हूं और क्या मुझे प्राप्त होने वाले विभिन्न पैरामीटर के साथ 'AVAudioOutput' को कॉन्फ़िगर करना संभव है? – peetonn

+1

@peetonn आपका स्वागत है। आपके प्रश्न के बारे में: मुझे यकीन नहीं है कि अगर आप 'AVAudioOutput' कहें तो 'ऑडियोऑटपुट यूनिट', 'AVAudioPlayer', या' AVCaptureAudioDataOutput' 'का अर्थ है। मैं कोर और एयू परतों पर बड़ा हुआ; मुझे लगता है कि रूपांतरण ओवरहेड से बचने के लिए, जो भी वे प्रदान करना चाहते हैं। यहां खोजना लायक है। – justin

संबंधित मुद्दे