2013-05-28 15 views
24

क्या ब्लूटूथ पर ऑडियो स्ट्रीम करना संभव है? मेरे शोध के दौरान मैंने पाया कि यह केवल A2DP(Advanced Audio Distribution Profile) का उपयोग कर संभव है। और क्या हर एंड्रॉइड डिवाइस ए 2 डीडी का समर्थन करता है? यदि नहीं, तो क्या ब्लूटूथ का उपयोग करके दो एंड्रॉइड डिवाइसों के बीच ऑडियो स्ट्रीम करना संभव है? कृपया इसे समझने में मेरी मदद करें।ब्लूटूथ के माध्यम से एक एंड्रॉइड डिवाइस से दूसरे एंड्रॉइड डिवाइस पर ऑडियो स्ट्रीम कैसे करें?

मैं निम्नलिखित लिंक के माध्यम से देखा है:

+2

1. लगभग हर डिवाइस ए 2 डीडी, ए 2 डीडी और एचएफपी (हैंड्सफ्री) प्रोफाइल का समर्थन करता है, जो मूलभूत प्रोफाइल हैं जिनके लिए फ़ोन की आवश्यकता होती है। 2. एंड्रॉइड 4.2.1 में ब्लूटूथ पर ऑडियो स्ट्रीमिंग समस्याएं थीं, यह एक चंचल ऑडियो था जिसे नवीनतम रिलीज में Google के अनुसार तय किया गया था। 3. ज्यादातर लोगों ने पहले ब्लूज़ (ओपन सोर्स ब्लूटूथ) स्टैक पर कोशिश की थी लेकिन जेबी के बाद से, ब्लूज़ को ब्रॉडकॉम स्टैक द्वारा प्रतिस्थापित किया गया है। आपको फोन में ऑडियो सिंक प्रोफ़ाइल को लागू करने की आवश्यकता है। Alljoyn का उपयोग करके 2 डिवाइसों के बीच ऑडियो स्ट्रीमिंग संभव हो सकती है, [लिंक] (https://www.alljoyn.org/about/core-services) – ashish

+0

उस लिंक @ashish के लिए धन्यवाद। मैं उसके माध्यम से जा रहा हूँ। और आपको बताएगा कि क्या होता है। एक बार फिर धन्यवाद। –

+0

क्या ब्लूटूथ के माध्यम से ऑडियो स्ट्रीम किया जाना चाहिए? [वाईफाई-डायरेक्ट] (http://developer.android.com/guide/topics/connectivity/wifip2p.html) का उपयोग करने के बारे में क्या? यह वास्तव में आपको अधिक लचीलापन और सुविधाएं देगा। – BigMacAttack

उत्तर

11

यह ब्लूटूथ पर ऑडियो स्ट्रीम करने के लिए संभव है?

धागे की तरह नीचे का कहना है इसकी संभावना है कि ब्लूटूथ पर ऑडियो स्ट्रीमिंग डिवाइस के बीच संभव है लेकिन Google अधिकारी तक इसकी सफलता दर पर प्रश्न चिह्न था घोषणा की कि We have fixed the a2dp streaming stutter problem on N7. The next release should have the fix. Sorry about the problem.

Fix for poor A2DP quality on 4.2.2

Bluetooth sound quality suffer after upgrade to 4.2 with Galaxy Nexus

Android 4.3 Bluetooth Audio Quality Fix for Nexus 7 Flo

और क्या प्रत्येक एंड्रॉइड डिवाइस ए 2 डीडी का समर्थन करता है?

समर्थन अनुकूलता Android developers site कि अपनी API Level-11 with appropriate features. से जोड़ा लेकिन मैं XDA tread में आए जहां Android 2.1 में ओपी उल्लेख समस्या है, इसकी भी पिछले API स्तरों लेकिन ओ पी का सामना करना पड़ मुद्दों में समर्थन का मतलब है पर उल्लेख है।

उम्मीद है कि यह समझने में समझदारी होगी और मैं XDA forum को ए 2 डीडी संगतता और इसकी सफलता के बारे में अधिक जानकारी प्राप्त करने के लिए अनुशंसा करना चाहता हूं।

1

मेरी राय, यदि ए 2 डीपी सही तरीके से काम नहीं करता है, तो हम बेहतर परत पर आगे बढ़ेंगे, और हम एक मूल धारा बना सकते हैं जिसका उपयोग किसी भी प्रकार की तारीख भेजने के लिए किया जा सकता है। मैं जे 2 एमई उपकरणों के बीच ब्लूटूथ के माध्यम से बाइट स्ट्रीम भेजने में सफल हूं।

यदि दोनों डिवाइसों में कोई ऐप इंस्टॉल करना स्वीकार्य है, तो सॉकेट स्थापित होने के बाद, मेरे पास सॉकेट के माध्यम से एक दूसरे के साथ संवाद करने के लिए ब्लूटूथ सर्वर और क्लाइंट बनाने के लिए नमूना कोड हैं, आप ऑडियो स्ट्रीम भेज सकते हैं :)

1) सर्वर उपकरण:

यहाँ कुछ कोर कोड हैं

// you can generate your own UUID and use it as an port to eatablish a socket 
private static final UUID MY_UUID = UUID.fromString("20687DAD-B023-F19E-2F60-A135554CC3FD") 

BluetoothServerSocket serverSocket = mBluetoothAdapter.listenUsingRfcommWithServiceRecord(NAME_INSECURE, MY_UUID); 
अब आप serverSocket है, बस एक साधारण ServerSocket रूप में इसका इस्तेमाल

:

BluetoothSocket socket = serverSocket.accept(); 

और फिर आप InputStream और OutputStream इस BluetoothSocket से मिलता है और सिर्फ HttpConnection

2) ग्राहक डिवाइस की तरह ऑडियो स्ट्रीम भेज सकते हैं:

मान आप पहले से ही BluetoothDevice

// you should implement the method getBlutoothDevice 
BluetoothDevice device = getBluetoothDevice(); 
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(MY_UUID_SECURE); 
+0

यह ध्यान दिया जाना चाहिए कि सामान्य A2DP L2CAP पर स्ट्रीम किया गया है जिसमें RFCOMM पैकेट की तुलना में बहुत बड़ा पेलोड आकार है।आरएफसीओएमएम पर स्ट्रीमिंग के परिणामस्वरूप छोटे पेलोड आकार और अतिरिक्त परत शामिल होने के कारण खराब ऑडियो गुणवत्ता होगी – TwinPrimesAreEz

0

मिला आप मूल एससीओ कनेक्शन पर ऑडियो भी स्ट्रीम कर सकते हैं जो किसी भी प्रोफ़ाइल पर निर्भर नहीं है। हालांकि, ध्यान रखें कि ए 2 डीडी एक प्रोफ़ाइल है जिसे विशेष रूप से संगीत स्ट्रीमिंग के लिए विकसित किया गया था। तो आप जो भी कार्यान्वयन करते हैं वह ए 2 डीडी की तुलना में गुणवत्ता में पीड़ित होगा।

जब तक आप किसी डिवाइस पर संगीत स्ट्रीम नहीं कर रहे हैं जो A2DP का समर्थन नहीं करता है, तो मैं निश्चित रूप से A2DP का उपयोग करता हूं। वास्तव में आपका एकमात्र अन्य विकल्प एससीओ लिंक का उपयोग करना है।

0

निम्नलिखित कोड स्निपेट का उपयोग कर प्रयास करें:

public class AudioStream extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    String url = "http://www.example.mp3"; 
    MediaPlayer mp = new MediaPlayer(); 
    try { 
    mp.setDataSource(url); 
    mp.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    mp.prepare(); 
    mp.start(); 
    } catch (Exception e) { 
    Log.i("Exception", "Exception in streaming = " + e); 
    } 
} 
} 
-1

ऐसा नहीं है कि ऐसा करने के लिए वास्तव में मुश्किल है। लेकिन मैंने बहुत सारे शोध किए और एक रास्ता मिला। कई देरी, कनेक्शन और मूल समस्याएं हैं, लेकिन स्पष्ट रूप से काम करती है। इसके लिए आपको सर्वर पर "एयरऑडियो" एप्लिकेशन और "ऑलकनेक्ट" रिसीवर स्थापित करने की आवश्यकता होगी। फिर आप होम स्क्रीन पर एयरऑडियो खोलते हैं और फिर ऑलकनेक्ट खोलते हैं, अपने डिवाइस पर दबाते हैं, फिर स्रोतों पर और सर्वर का चयन करते हैं, फिर स्ट्रीमिंग एमपी 3 चुनें। समस्या यह है कि देरी बहुत बड़ी है और दूसरा दोष यह है कि एंड्रॉइड सर्वर की प्रणाली की ध्वनि को संचारित करने के लिए आपको फोन पर रूट होना चाहिए ... मैंने स्ट्रीमिंग के रिसीवर को भी वीएलसी होने की कोशिश की, कम था देरी हुई लेकिन फिर भी यह असहज है।

संबंधित मुद्दे