यह स्टैक ओवरफ्लो पर मेरी पहली पोस्ट है। मैं पिछले कुछ दिनों से एंड्रॉइड स्मार्टफ़ोन पर ऑडियो रूट करने का प्रयास करता हूं लेकिन मुझे यह ठीक से करने के लिए फ़ंक्शन नहीं मिल रहा है।एंड्रॉइड - स्मार्टफोन और ब्लूटूथ मॉड्यूल के बीच ऑडियो रूट करने के लिए फ़ंक्शन
यह ब्लूटूथ बेबीफोन बनाने के लिए है।
मुझे स्मार्टफ़ोन और ब्लूटूथ मॉड्यूल के बीच रूटिंग करने की आवश्यकता है। ब्लूटूथ मॉड्यूल शुरू में हैंडसेट, कार हैंडफ्री, वायरलेस स्पीकर बनाने के लिए उपयोग किया जाता है ...
मैं परियोजना के ऑडियो पक्ष के लिए ए 2 डीडी और एचएफपी (हैंडफ्री) प्रोफाइल के साथ संवाद करता हूं।
मैं डिवाइस के बीच एक "स्कू" कनेक्शन (ऑडियो ब्लूटूथ एक्सचेंजों के साथ कनेक्शन का उपयोग) स्थापित कर सकता हूं और ब्लूटूथ मॉड्यूल से ऑडियो वापस प्राप्त कर सकता हूं। लेकिन जब एक कनेक्शन "स्कू" काम कर रहा है, तो मैं अपने स्मार्टफोन पर स्पीकर और माइक्रोफोन का और अधिक उपयोग नहीं कर सकता।
मुझे आशा है कि मेरे स्मार्टफोन पर ऑडियो का उपयोग करने के लिए और साथ ही मेरे ब्लूटूथ मॉड्यूल पर ऑडियो का समाधान मिलेगा।
मैंने ऑडियो को रूट करने के लिए एक समारोह के लिए http://developer.android.com/index.html पर खोज की।
ऑडियो मैनेजर क्लास में सेट रूटिंग या सेट पैरामीटर जैसे ऑडियो रूट करने के लिए कुछ फ़ंक्शन हैं लेकिन मेरे पास अभी तक कोई परिणाम नहीं है। http://developer.android.com/reference/android/media/AudioManager.html
आप कोड मैं babyphone पक्ष (ब्लूटूथ मॉड्यूल की ओर) से ऑडियो प्राप्त करने के लिए उपयोग करने के नीचे देख सकते हैं: मैं स्मार्टफोन वक्ता के लिए नहीं मार्ग ऑडियो और उपयोग कर सकते हैं में "शंघाई सहयोग संगठन" कनेक्शन
boolean isRecording=true;
int buffersize = 8000;
byte[] buffer = new byte[buffersize];
//audio configuration and SCO Bluetooth connection.
AudioManager aManager = (AudioManager) getSystemService(AUDIO_SERVICE);
android.os.Process.setThreadPriority(
android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
aManager.startBluetoothSco();
aManager.setBluetoothScoOn(true);
aManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
//AudioRecord configuation for recording audio from babyphone.
AudioRecord arec = new AudioRecord(
MediaRecorder.AudioSource.VOICE_COMMUNICATION,
8000,
AudioFormat.CHANNEL_IN_MONO,
AudioFormat.ENCODING_PCM_16BIT,
buffersize);
//AudioTrack configuation for sending audio to smartphone speaker.
AudioTrack atrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL,
8000,
AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT,
buffersize,
AudioTrack.MODE_STREAM);
atrack.setPlaybackRate(8000);
//start audio recording and playing.
arec.startRecording();
atrack.play();
while(isRecording) {
arec.read(buffer, 0, buffersize);
atrack.write(buffer, 0, buffer.length);
}
arec.stop();
atrack.stop()
बेबीफोन पक्ष पर माइक्रोफ़ोन से ऑडियो वापस लेने के लिए, मुझे अपनी परियोजना की दिशा बदलने के लिए जितनी जल्दी हो सके इसे जानने की आवश्यकता है।
स्मार्टफोन पक्ष पर बेबीफ़ोन प्रोग्राम को यदि संभव हो तो सभी हालिया स्मार्टफ़ोन पर चलने की आवश्यकता है।
अंग्रेजी मेरी पहली भाषा नहीं है इसलिए कुछ वाक्य सही नहीं हो सकते हैं।
मैं किसी भी समाधान के लिए खुला हूं।
कोई भाग्य? मैं अपने ब्लूटूथ हेडसेट के माइक्रोफोन को पीए सिस्टम के रूप में उपयोग करने की कोशिश कर रहा हूं, दूसरे शब्दों में प्लेबैक जैक (आउटपुट) पर होना चाहिए, (मुझे लगता है कि एक और ब्लूटूथ डिवाइस पर अनुमान लगाना असंभव होगा)। ऐसा लगता है कि यह संभव नहीं है – Diego