2009-07-21 17 views
9

में पीसीएम कच्चे डेटा को कैसे खेलें मेरे पास एक लघु सरणी में पीसीएम नमूने हैं। इसे खेलने का सबसे अच्छा तरीका क्या है? प्रारूप 8000 हर्ट्ज, मोनो, 16 बिट, बड़ा एंडियन है। (पीसीएम नमूने कोड में उत्पन्न कर रहे हैं और कुछ फ़ाइल के माध्यम से पढ़ा नहीं)जावा

धन्यवाद

उत्तर

4

javax.sound.sampled पैकेज के साथ यह काफी सीधा है, लेकिन आप कुछ बॉयलरप्लेट का उपयोग करना होगा।

यहाँ उस पर एक अच्छा ट्यूटोरियल है: www.wikijava.org/wiki/Play_a_wave_sound_in_Java

मूल रूप से आप अपने सरणी से एक InputStream बना सकते हैं और उपयोग करें कि एक AudioInputStream बनाने के लिए किया है। वहां आपको अपने ऑडियो डेटा का प्रारूप निर्दिष्ट करना होगा।

फिर आप आउटपुट स्ट्रीम (SourceDataLine) खोलें और उस स्ट्रीम में ऑडियो स्ट्रीम से बाइट कॉपी करें।

+0

टिप के लिए धन्यवाद। मैंने इस विधि की कोशिश की लेकिन पीसीएम डेटा को ठीक से नहीं चला सका, मुझे केवल शोर मिल सकता था। शायद ऑडियोफॉर्मैट के साथ कुछ कॉन्फ़िगरेशन समस्या। लेकिन मुझे चारों ओर एक काम मिला: मैंने पीसीएम डेटा को एक फ़ाइलऑटपुटस्ट्रीम (/tmp/x.wav) और execed aplay कमांड (linux में alsa उपयोगिता) में /tmp/x.wav खेलने के लिए हटा दिया। – Geos