को देखते हुए एक InputStream
बुलाया in
जो (जैसे एमपी 3 या OGG के रूप में) एक संपीड़ित प्रारूप में ऑडियो डेटा होता है, मैं इनपुट के एक WAV रूपांतरण युक्त एक byte
सरणी बनाना चाहते हैं डेटा। दुर्भाग्यवश, अगर आप ऐसा करने के लिए प्रयास करते हैं, JavaSound आपको निम्न त्रुटि हाथ:अस्थायी फ़ाइल के बिना जावा में WAV बाइट सरणी में कनवर्ट ऑडियो स्ट्रीम
java.io.IOException: stream length not specified
मैं, एक अस्थायी फ़ाइल के लिए wav लेखन, इसे वापस में पढ़ने तब तक काम करने के लिए इसे पाने के लिए प्रबंधित के रूप में नीचे दिखाया गया है:
AudioInputStream source = AudioSystem.getAudioInputStream(new BufferedInputStream(in, 1024));
AudioInputStream pcm = AudioSystem.getAudioInputStream(AudioFormat.Encoding.PCM_SIGNED, source);
AudioInputStream ulaw = AudioSystem.getAudioInputStream(AudioFormat.Encoding.ULAW, pcm);
File tempFile = File.createTempFile("wav", "tmp");
AudioSystem.write(ulaw, AudioFileFormat.Type.WAVE, tempFile);
// The fileToByteArray() method reads the file
// into a byte array; omitted for brevity
byte[] bytes = fileToByteArray(tempFile);
tempFile.delete();
return bytes;
यह स्पष्ट रूप से कम वांछनीय है। क्या कोई बेहतर तरीका है?
मुझे इसे आज़मा देना होगा। इससे पहले कि मैं कोशिश कर सकूं, यह थोड़ा सा हो सकता है, इसलिए मैं इस समय जवाब स्वीकार नहीं कर सकता। हालांकि, मैं इसे ऊपर उठाऊंगा। –