मुझे बाइट सरणी में संग्रहीत ऑडियो डेटा लेने में कुछ समस्याएं आ रही हैं, इसे एक बड़े-एंडियन शॉर्ट सरणी में परिवर्तित करने, इसे एन्कोड करने, फिर इसे बाइट सरणी में बदलने के लिए कुछ समस्याएं हैं। यही सब कुछ मेरे पास है। मूल ऑडियो डेटा ऑडियोबाइट 2 में संग्रहीत किया जाता है। मैं इसके बजाय कॉस फ़ंक्शन पर एक ऋण के साथ डीकोड के लिए एक ही प्रारूप का उपयोग कर रहा हूं। दुर्भाग्यवश, बाइट और लघु डेटा प्रकारों को बदलना गैर-विचारणीय है।बाइट सरणी को लघु सरणी में और फिर जावा में वापस
short[] audioData = null;
int nlengthInSamples = audioBytes2.length/2;
audioData = new short[nlengthInSamples];
for (int i = 0; i < nlengthInSamples; i++) {
short MSB = (short) audioBytes2[2*i+1];
short LSB = (short) audioBytes2[2*i];
audioData[i] = (short) (MSB << 8 | (255 & LSB));
}
int i = 0;
while (i < audioData.length) {
audioData[i] = (short)(audioData[i] + (short)5*Math.cos(2*Math.PI*i/(((Number)EncodeBox.getValue()).intValue())));
i++;
}
short x = 0;
i = 0;
while (i < audioData.length) {
x = audioData[i];
audioBytes2[2*i+1] = (byte)(x >>> 0);
audioBytes2[2*i] = (byte)(x >>> 8);
i++;
}
मैं सब कुछ है कि मैं इस काम करने के लिए के बारे में सोच सकते हैं किया है, लेकिन सबसे करीब मैं आए हैं हर दूसरे एनकोड/डीकोड काम करने के लिए यह हो रही है और मैं पता नहीं क्यों है। किसी भी मदद के लिए धन्यवाद।
आपके पास क्या समस्याएं हैं? –
क्या यह बड़ा-एंडियन या छोटा-एंडियन है? मुझे लगता है कि इस रूपांतरण को संभालने के लिए आपको 'java.nio.ByteBuffer' की आवश्यकता है। –
[संभावित सरणी को बाइट सरणी में कनवर्ट करने के तरीके] का संभावित डुप्लिकेट [http://stackoverflow.com/questions/10804852/how-to-convert-short-array-to-byte-array) –