लहर डेटा नमूने में हस्तक्षेप किया जाता है। इसका मतलब है कि डेटा इस तरह व्यवस्थित है।
Sample 1 Left | Sample 1 Right | Sample 2 Left | Sample 2 right ... Sample n Left | Sample n right
प्रत्येक नमूने के रूप में 16-बिट (2 बाइट्स) पहले 2 चैनल नमूना (यानी दोनों छोड़ दिया और सही के लिए) आकार में 4 बाइट है।
इस तरह आप जानते लहर डेटा के एक ब्लॉक में पिछले नमूना इस प्रकार है कि:
wavDataSize - 4
फिर आप प्रत्येक नमूने एक समय में एक अलग बफर में यह कॉपी करके अंत में शुरू करने से लोड कर सकते हैं रिकॉर्डिंग और पीछे पढ़ने के लिए। जब आप लहर डेटा की शुरुआत में जाते हैं तो आपने लहर डेटा को उलट दिया है और खेल को उलट दिया जाएगा।
संपादित करें: यदि आप आईओएस पर लहर फ़ाइलों को पढ़ने के आसान तरीके चाहते हैं तो Audio File Services Reference देखें।
संपादित करें 2:
readPoint = waveDataSize;
writePoint = 0;
while(readPoint > 0)
{
readPoint -= 4;
Uint32 bytesToRead = 4;
Uint32 sample;
AudioFileReadBytes(inFile, false, maxData, &bytesToRead &sample);
AudioFileWriteBytes(outFile, false, writePoint, &bytesToRead, &sample);
writePoint += 4;
}
का उपयोग नहीं कठिनाई यह है कि अगर यह एक वैव फ़ाइल प्रारूप है जिसमें हेडर और भाग हैं। – zaph
@ कोकोआफू: वास्तव में नहीं। ऐप्पल आपको उन कार्यों का पूरा समूह प्रदान करता है जो लहर फ़ाइलों से निपटते हैं। प्रारूप खुद को करना मुश्किल नहीं है। – Goz
@Goz धन्यवाद, अगर यह पूछने में बहुत अधिक परेशानी नहीं है, तो क्या आप मेरी समझ में सहायता के लिए कोड नमूना प्रदान कर सकते हैं? यह कोड-वार कैसे प्राप्त किया जाएगा? – DaveSmith122