/ / जावा - WAV फ़ाइल - नल बाइट? - जावा, ऑडियो, जावासाउंड

जावा - वाव फ़ाइल - नल बाइट? - जावा, ऑडियो, जावासाउंड

मेरे पास एक अजीब सवाल है। अभी, मैं wav फाइल नमूने को पढ़ने में सक्षम हूं और उन्हें संसाधित करने के बाद, इसे फ़ाइल में फिर से सहेज रहा हूं। लेकिन मेरे प्रोजेक्ट के लिए, मुझे कुछ बाइट्स को शून्य मान के साथ बदलना है। मेरा मतलब है, अगर मैं wav फ़ाइल में कुछ पूर्णांक डालता हूं (उदाहरण के लिए: 25 का बाइनरी फॉर्म) जिसका मतलब है साउंड कार्ड हमें इलेक्ट्रिक सिग्नल देगा जो 25 से संचालित है (मुझे ध्वनि कार्ड और WAV फाइल अवधारणाओं के बारे में कुछ गलतफहमी हो सकती है)।

लेकिन मेरी परियोजना में मुझे रखना होगा null Wav फ़ाइल में मूल्य। जब साउंड कार्ड 25 के द्विआधारी रूप को पढ़ता है, तो यह सिग्नल देगा लेकिन उसके बाद शून्य बाइट और साउंड कार्ड होगा, क्योंकि कोई अन्य मूल्य आने के बाद कोई इलेक्ट्रिक सिग्नल नहीं देगा।

मुझे पता है, मैं अपना प्रश्न ठीक से व्यक्त नहीं कर सका। इसे और अधिक समझने योग्य बनाने के लिए;

मान लीजिए कि ऐसी फाइल है जो इस तरह संग्रहीत है

data[] = {10,12,13,14,15,14,13,12,11,10};

मैं इसे बनाना चाहता हूँ

data[]= {10,12,13,14,null,null,null,12,11,10}

और जब साउंड कार्ड इस डेटा को पढ़ता है, तो यह हमें उदाहरण के लिए देगा

10 voltage,12 voltage,13 voltage,14 voltage,no any signal,no any signal,no any signal,12 voltage, 11 voltage, 10 voltage}

उत्तर:

जवाब के लिए 0 № 1

आप एक नहीं डाल सकते हैं null एक फ़ाइल में जब आप "बाइट्स से निपट रहे हैं - प्रत्येक बाइट बिट्स के 256 संयोजनों में से एक होना चाहिए।

साउंडकार्ड लौटने पर आपका क्या मतलब है no any signal? शून्य वोल्टेज के बराबर नहीं है (यानी पूर्णांक मान का उपयोग करें 0 फाइल में)? या आप "अज्ञात" का प्रतिनिधित्व करने के लिए प्लेसहोल्डर के रूप में शून्य का उपयोग कर रहे हैं?

आप अभी भी अपना प्रश्न पूरी तरह व्यक्त नहीं कर सकते हैं - ऐसा लगता है कि आपने यह तय किया है कि आपको फ़ाइल में नल डालने की ज़रूरत है, और ऐसा लगता है कि आप इसे औचित्य साबित नहीं करते हैं। आप क्या हैं वास्तव में हासिल करने की कोशिश कर रहा है ("डब्ल्यूएवी में नल डालें") - और यह शून्य के साथ काम करेगा?


जवाब के लिए 0 № 2

मुझे संदेह है कि एक डब्ल्यूएवी फ़ाइल में तरंग के बीच में "नो सिग्नल" का प्रतिनिधित्व करने का एक विशिष्ट तरीका है। (एक सरसरी पढ़ने यह विवरण यह पुष्टि करने के लिए प्रतीत होता है।)

मुझे लगता है कि आपकी सबसे अच्छी शर्त केवल उन शून्यों का उपयोग करना है जहां आपके पास कोई संकेत नहीं है। (जाहिर है, शून्य को आपके चुने हुए कोडेक का उपयोग करके एन्कोड करने की आवश्यकता होगी।)


वैसे, भले ही डब्ल्यूएवी फ़ाइल में "नो सिग्नल" का प्रतिनिधित्व करने का कोई तरीका हो, फिर भी इसमें शामिल नहीं होगा null जावा बाइट सरणी में मान। जावा बाइट सरणी में शामिल नहीं हो सकता है nullएस ... कभी जावा भाषा विशिष्टता इसे मना करता है।


जवाब के लिए 0 № 3

कोई "शून्य संकेत" नहीं है। यदि आपका मतलब है कि आप कोई आउटपुट नहीं चाहते हैं तो बस 0 भेजें (यदि आप हस्ताक्षरित मानों का उपयोग कर रहे हैं)। यदि आप हस्ताक्षरित मानों का उपयोग कर रहे हैं (जो जावा द्वारा समर्थित नहीं है), 8-बिट नमूने के लिए 128 और 16-बिट नमूने के लिए 32768 भेजें।

तो बस कहो

data[]= {10,12,13,14,0,0,0,12,11,10};

कुछ ऐसा करने के बाद

yourSoundCardObject.write(data); //The method write is hypothetical

आपकी नमूना दर क्या है?