एक सामान्य WAV फ़ाइल में 44-बाइट हेडर होता है जिसके बाद वास्तविक नमूना मान होते हैं। "फ्रेम" का आकार WAV फ़ाइल के गुणों पर निर्भर है: एक फ़ाइल जो स्टीरियो और 16-बिट्स-प्रति-नमूना है, में 4-बाइट फ्रेम आकार होगा (बाएं नमूने के लिए दो बाइट और सही नमूने के लिए दो बाइट्स होंगे)।
तो कोड में, आप बाइट सरणी को मूल के समान आकार के समान बनाकर दूसरी WAV फ़ाइल बनायेंगे। आप 44-बाइट हेडर को मूल से प्रतिलिपि में प्रतिलिपि बनाते हैं, और उसके बाद अंतिम फ्रेम से शुरू होने वाले मूल फ्रेम के माध्यम से फिर से काम करते हैं और पहले के लिए आगे काम करते हैं। आप कॉपी फ्रेम में प्रत्येक फ्रेम को विपरीत स्थान में कॉपी करते हैं (यानी अंतिम मूल फ्रेम को हेडर के तुरंत बाद कॉपी सरणी में कॉपी किया गया है; दूसरे फ्रेम के बाद दूसरी फ्रेम की प्रतिलिपि बनाई गई है)। फिर बस उलटा फ़ाइल चलाएं।
तो आपको ऐसा करने के लिए javax.sound लाइब्रेरी की आवश्यकता नहीं है - आपको बस बाइट्स कॉपी और हेरफेर करने में सक्षम होना चाहिए। एफवाईआई, सभी डब्ल्यूएवी फाइलें इस तरह "कैननिकल" नहीं हैं (कैननिकल का अर्थ है 44-बाइट हेडर प्लस नमूना मान, और कुछ भी नहीं)। डब्ल्यूएवी प्रारूप वास्तव में एक आरआईएफएफ प्रारूप है, जिसका अर्थ सिद्धांत में आपको नमूना मूल्यों के अधिक जटिल निष्कर्षण करने की आवश्यकता है। अभ्यास में (विशेष रूप से यदि आप स्वयं डब्ल्यूएवी फाइलें बना रहे हैं) तो आप आमतौर पर यहां वर्णित एक बहुत ही सरल दृष्टिकोण से दूर हो सकते हैं।
नोट: यदि आपकी आवाज एमपी 3 फ़ाइलें हैं, तो उलटना एक और जटिल कार्य है, क्योंकि नमूना डेटा एमपी 3 फ़ाइल में नमूने के रूप में संग्रहीत नहीं किया जाता है। यदि आप एमपी 3 का उपयोग कर रहे हैं, तो उन्हें रिवर्स करने का एक तरीका उन्हें WAV में परिवर्तित करना है और फिर WAV फ़ाइल को उलट देना है।
हाय @ सैमरोली क्या आप वर्णित एल्गोरिदम के साथ अपना लक्ष्य प्राप्त कर रहे हैं? मैं मूल 44 से बाइट हेडर को मूल रूप से मूल फ़ाइल से रिवर्स करने के लिए कॉपी करता हूं, और मैं खेलने के लिए WAV ऑडियो नहीं बना सका? मैं सोक्स और रिवर्स ऑडियो का उपयोग करता हूं और जांचता हूं कि 44-बाइट हेडर बिल्कुल नहीं है? कृपया अगर आप किसी भी सलाह के साथ मेरी मदद कर सकते हैं तो मैं इसकी सराहना करूंगा –