अगर मैं विस्तारित ऑडियो फ़ाइल सेवाओं के साथ एक ऑडियो फ़ाइल खोलते हैं, तो निम्न क्लाइंट डेटा स्वरूप का उपयोग कर ...मैं ऑडियोबफर सूची से नमूने कैसे पढ़ूं?
AudioStreamBasicDescription audioFormat;
memset(&audioFormat, 0, sizeof(audioFormat));
audioFormat.mSampleRate = 44100.0;
audioFormat.mFormatID = kAudioFormatLinearPCM;
audioFormat.mFormatFlags = kAudioFormatFlagIsBigEndian |
kAudioFormatFlagIsSignedInteger |
kAudioFormatFlagIsPacked;
audioFormat.mBytesPerPacket = 4;
audioFormat.mFramesPerPacket = 1;
audioFormat.mChannelsPerFrame = 2;
audioFormat.mBytesPerFrame = 4;
audioFormat.mBitsPerChannel = 16;
और इसलिए की तरह एक AudioBufferList कॉन्फ़िगर ....
AudioBufferList bufferList;
bufferList.mNumberBuffers = 1;
bufferList.mBuffers[0].mDataByteSize = bufferSize;
bufferList.mBuffers[0].mNumberChannels = audioFormat.mChannelsPerFrame;
bufferList.mBuffers[0].mData = buffer; //malloc(sizeof(UInt8) * 1024 * audioFormat.mBytesPerPacket)
कैसे है, तो , एमडीएटी में व्यवस्थित डेटा है? अगर मैं ऐसा
for (int i = 0; i < frameCount; i++) {
UInt8 somePieceOfAudioData = buffer[i];
}
की तरह डेटा के माध्यम से पुनरावृति तो somePieceOfAudioData क्या है।
क्या यह नमूना या फ्रेम है (बाएं और दाएं चैनल एक साथ)? यदि यह नमूना है तो यह किस चैनल के लिए नमूना है? उदाहरण के लिए यदि यह सही चैनल से नमूना है, तो [i + 1] बाएं चैनल के लिए नमूना होगा?
कोई विचार, लिंक? धन्यवाद!
'बफर ऑडियो के दो विभिन्न प्रकार ... एक एकल, मोनोफोनिक, noninterleaved ऑडियो के चैनल का प्रतिनिधित्व कर सकते [या] इंटरलीव्ड ऑडियो चैनलों की किसी भी संख्या के साथ-साथ mNumberChannels फ़ील्ड द्वारा निर्दिष्ट "। अब सवाल, मुझे लगता है, मैं कैसे जानता हूं कि कौन सा है, और क्या मुझे एक से अधिक ऑडियो बफर का उपयोग करना चाहिए? जैसे bufferList.mNumberBuffers = audioFormat.mChannelsPerFrame –