मेरे ऐप के लिए, मुझे एक एंड्रॉइड फोन पर एमआईसी से ऑडियो रिकॉर्ड करने की आवश्यकता है, और इसे अन्य एंड्रॉइड फोन पर टीसीपी पर भेजना है, जहां इसे खेला जाना चाहिए।एंड्रॉइड: टीसीपी सॉकेट पर ऑडियो स्ट्रीमिंग
मैं AudioRecord
और AudioTrack
कक्षा का उपयोग कर रहा हूं। यह फ़ाइल के साथ बहुत अच्छा काम करता है - DataOutputStream
का उपयोग कर फ़ाइल में ऑडियो लिखें, और DataInputStream
का उपयोग करके इसे पढ़ें।
हालांकि, अगर मैं एक फ़ाइल के बजाय सॉकेट से एक ही स्ट्रीम प्राप्त करता हूं, और इसे लिखने का प्रयास करता हूं, तो मुझे अपवाद मिलता है।
मुझे समझने में कमी आई है कि संभवतः गलत क्या हो सकता है। किसी भी तरह की सहायता का स्वागत किया जाएगा।
संपादित करें: समस्या तब भी वही है जब मैं बड़े बफर आकार (65535 बाइट्स, 160000 बाइट्स) के साथ प्रयास करता हूं।
इस कोड है:
रिकॉर्डर:
int bufferSize = AudioRecord.getMinBufferSize(11025, , AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
AudioRecord recordInstance = new AudioRecord(MediaRecorder.AudioSource.MIC, 11025, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSize);
byte[] tempBuffer = new byte[bufferSize];
recordInstance.startRecording();
while (/*isRecording*/) {
bufferRead = recordInstance.read(tempBuffer, 0, bufferSize);
dataOutputStreamInstance.write(tempBuffer);
}
DataOutputStream ऊपर प्राप्त किया जाता है के रूप में:
BufferedOutputStream buff = new BufferedOutputStream(out1); //out1 is the socket's outputStream
DataOutputStream dataOutputStreamInstance = new DataOutputStream (buff);
आप कृपया एक नज़र मिल सकता है, और मुझे पता है कि यह क्या है कि मैं यहाँ गलत कर सकता था?
धन्यवाद,
क्या आपने ऑडियो डिवाइस को अन्य उपकरणों पर भेजने का प्रबंधन किया था? – B770