क्या मैं अपने कंप्यूटर को A2DP रिसीवर / ब्लूटूथ स्पीकर के रूप में उपयोग कर सकता हूं?


40

सबसे पहले, समस्या: मैं अपने मुख्य संगीत खिलाड़ी के रूप में बेसिक इयरप्लग के साथ काउऑन एमपी 3 प्लेयर का उपयोग कर रहा हूं।

यह A2DP प्रदान करता है और मैं अपनी नेटबुक (UNE 10.04 चल रहा है) रिसीवर के रूप में काम करना चाहता हूं।

A2dp के बारे में वेब पर कुछ संसाधन, लेकिन अधिकांश पुराने हैं:

जवाबों:


47

अपने उबंटू मशीन को एक 2dp ब्लूटूथ डिवाइस के रूप में उपयोग करने के लिए, आपको पहले इसे "a2dp सिंक" समापन बिंदु के रूप में पंजीकृत करने के लिए कॉन्फ़िगर करना होगा।

Bluez उबंटू में पैकेज (10.04 और ऊपर) एक उपयोगिता बुलाया शामिल sdptool कि जाँच करने के लिए एक ब्लूटूथ डिवाइस या नहीं एक A2DP सिंक के रूप में कॉन्फ़िगर किया गया है कि क्या किया जा सकता है। यहाँ मेरे ब्लूटूथ हेडसेट के खिलाफ sdptool रन से आउटपुट है (पता सूक्ति-नियंत्रण केंद्र में "ब्लूटूथ सेटिंग्स" संवाद से लिया जा रहा है):

$ sdptool search --bdaddr 00:18:16:3A:3B:D4 a2snk
Searching for a2snk on 00:18:16:3A:3B:D4 ...
Service RecHandle: 0x10002
Service Class ID List:
  "Audio Sink" (0x110b)
Protocol Descriptor List:
  "L2CAP" (0x0100)
    PSM: 25
  "AVDTP" (0x0019)
    uint16: 0x102
Profile Descriptor List:
  "Advanced Audio" (0x110d)
    Version: 0x0102

$

और यहाँ आउटपुट है जब मेरे स्थानीय उबंटू मशीन के खिलाफ चलाया जाता है:

$ sdptool search --bdaddr local a2snk
Searching for a2snk on FF:FF:FF:00:00:00 ...
$

इससे पता चलता है कि उबंटू मशीन खुद को a2dp सिंक के रूप में विज्ञापन नहीं दे रही है। हालांकि यह एक a2dp स्रोत के रूप में ही विज्ञापन कर रहा है:

$ sdptool search --bdaddr local a2src
Searching for a2src on FF:FF:FF:00:00:00 ...
Service Name: Audio Source
Service RecHandle: 0x10003
Service Class ID List:
  "Audio Source" (0x110a)
Protocol Descriptor List:
  "L2CAP" (0x0100)
    PSM: 25
  "AVDTP" (0x0019)
    uint16: 0x102
Profile Descriptor List:
  "Advanced Audio" (0x110d)
    Version: 0x0102

यह उबंटू मशीन को ऑडियो श्रोत के रूप में हेडसेट के साथ सही तरीके से जोड़े रखने में सक्षम बनाता है, लेकिन यह ब्लूटूथ ऑडियो के लिए उबंटू मशीन को आउटपुट (सिंक) के रूप में उपयोग करने में सक्षम नहीं करता है।

यदि आप संपादित करते हैं /etc/bluetooth/audio.conf, तो आप इस पंक्ति को [General]अनुभाग के नीचे जोड़कर a2dp सिंक समर्थन सक्षम कर सकते हैं :

  Enable=Source

यह दोनों का नाम रखा गया है - चूंकि हम जो यहां जोड़ रहे हैं वह ब्लूटूथ सिंक सपोर्ट है, सोर्स सपोर्ट नहीं है - और इस फाइल में टिप्पणी के साथ विरोधाभास है कि सभी कार्यान्वित सेवाओं का दावा डिफ़ॉल्ट रूप से सक्षम है। :(

इस परिवर्तन को करने के बाद, आपको चल कर ब्लूटूथ को पुनः आरंभ करना होगा sudo service bluetooth restart

यदि आपने इस काम को करने की कोशिश करते समय पहले अपने एंड्रॉइड डिवाइस और उबंटू कंप्यूटर को पेयर कर लिया है, तो आपको उबंटू को उपलब्ध ऑडियो डिवाइस के रूप में पहचानने के लिए एंड्रॉइड को पाने के लिए दोनों तरफ से पेयरिंग को हटाना होगा और उन्हें फिर से पेयर करना होगा।

एक बार जब आप ऐसा कर लेते हैं, तो Android डिवाइस को PulseAudio के तहत इनपुट डिवाइस के रूप में दिखाना चाहिए। यदि PulseAudio नए ब्लूटूथ ऑडियो स्रोत का पता नहीं लगाता है, तो आपको कमांड लाइन से ब्लूटूथ मॉड्यूल को स्थापित करने और लोड करने की आवश्यकता हो सकती है:

 sudo apt-get install pulseaudio-module-bluetooth
 pactl load-module module-bluetooth-discover

फिर आपको इस ऑडियो इनपुट को अपने आउटपुट / सिंक (जैसे आपके स्पीकर, या ब्लूटूथ हेडसेट) को लूपबैक कनेक्शन (एक स्रोत से एक सिंक तक सीधी रेखा) का उपयोग करके रूट करने के लिए पल्सएडियो को बताना होगा।

पल्सएडियो के बाद के संस्करणों में मॉड्यूल-ब्लूटूथ-नीति शामिल हो सकती है और इसमें पहले से ही आपके लिए एक लूपबैक डिवाइस सेट हो सकता है, लेकिन यह सबसे आम मामला नहीं लगता है।

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

 pactl load-module module-loopback

अगर आप अभी तक कुछ भी नहीं सुनते हैं, तो डरें नहीं, या यदि आपको अजीब प्रतिक्रिया प्रभाव मिलता है, तो हमें नव निर्मित डिवाइस को बताना होगा कि किस स्रोत से इनपुट प्राप्त करना है और कौन सा सिंक पहले आउटपुट को भेजना है।

Pavucontrol खोलें और इसका कॉन्फ़िगरेशन टैब खोलें। सुनिश्चित करें कि आपका ब्लूटूथ डिवाइस यहां दिखाया गया है (ब्लूमैन-मैनेजर या किसी अन्य ब्लूटूथ टूल का उपयोग करने के बाद) और प्रोफ़ाइल A2DP पर सेट है। इनपुट डिवाइस टैब पर स्विच करें और सुनिश्चित करें कि आपका डिवाइस यहां भी दिखाता है और म्यूट नहीं किया गया है। अब रिकॉर्डिंग टैब पर जाएं और नव निर्मित लूपबैक कनेक्शन को म्यूट बटन के बगल में चयन बॉक्स के साथ एक स्रोत के रूप में अपने डिवाइस का उपयोग करें। प्लेबैक टैब पर स्विच करें सिंक का चयन करने के लिए उसी तरह लूपबैक कनेक्शन का उपयोग करना चाहिए। यदि लूपबैक डिवाइस टैब में दिखाई नहीं देता है, तो सुनिश्चित करें कि प्रत्येक टैब के निचले भाग में चयन बॉक्स का उपयोग करके सभी स्ट्रीम प्रदर्शित की जाती हैं।

अब आपको अपने डिवाइस से ऑडियो सुनना चाहिए, यदि यह आपके स्पीकर में, या आपके द्वारा चुने गए आउटपुट को सिंक करता है। जब आपके डिवाइस को डिस्कनेक्ट कर दिया जाता है तो लूपबैक डिवाइस एक उपलब्ध सिंक और स्रोत पर वापस आ जाएगा, जो वांछनीय नहीं हो सकता है, इसलिए सुनिश्चित करें कि आप लूपबैक डिवाइस को तब तक म्यूट करें जब तक आपको इसकी आवश्यकता न हो। लूपबैक कनेक्शन उसी सिंक / स्रोत को पुनर्स्थापित करेगा जब अगली बार एक ही ब्लूटूथ डिवाइस मॉड्यूल से जुड़ा होता है - * - मॉड्यूल को पुनर्स्थापित करें।

यदि वह काम नहीं करता है , या आपके पास pavucontrol स्थापित नहीं है, तो आप निम्न विधि का उपयोग करके लूपबैक सेट कर सकते हैं:

 pactl load-module module-loopback source_dont_move=yes source=$BTSOURCE sink=$SINK

( $BTSOURCEअपने ब्लूटूथ डिवाइस के लिए स्रोत नाम के साथ बदलें जैसा कि पल्सएडियो द्वारा देखा गया है, उदाहरण के लिए bluez_source.14_DA_E9_2A_D7_57, और $SINKआप जो ऑडियो स्ट्रीम भेजना चाहते हैं, उसका नाम पल्सएडियो के साथ बदलें , जैसे:। alsa_output.pci-0000_00_1b.0.analog-stereoआप सिंक तर्क को पूरी तरह से छोड़ सकते हैं और इसमें गिरावट आ सकती है। एक सक्रिय सिंक के लिए, और बाद में इसे pavucontrol के माध्यम से बदल दें।)

  • आप के $SINKसाथ पा सकते हैं pactl list sinks, यह बाद में दिखाया गया हैName:
  • इसी तरह आप के $BTSOURCEसाथ देख सकते हैंpactl list sources
  • यह source_dont_moveतर्क लूपबैक कनेक्शन को ब्लूटूथ डिवाइस के डिस्कनेक्ट होने पर दूसरे ऑडियो स्रोत पर वापस गिरने से रोकता है। इसके बजाय इसे हटा दिया गया है और आपको इसे अगली बार फिर से सेट करना होगा।

यहां एक उदाहरण दिया गया है, जो एक व्यक्ति की तरह दिखाई देगा ( ब्लूटूथ पते के :साथ याद रखना _!):

pactl load-module module-loopback source_dont_move=yes source=bluez_source.14_DA_E9_2A_D7_57 sink=alsa_output.pci-0000_00_14.2.analog-stereo

यदि फॉलबैक मॉड्यूल लोड करना विफल हो जाता है, तो source_dont_move=yesतर्क को हटाने का प्रयास करें , इसे पहले संस्करण 1.0 में उपलब्ध कराया गया था। फिर इस ऑडियो को छोड़ने से पहले इस लूपबैक कनेक्शन को हटाने के लिए सावधान रहें, या उदाहरण के लिए यदि आपका लैपटॉप माइक्रोफोन अनमैटेड है, तो आपको कुछ बहुत खराब प्रतिक्रिया मिल सकती है। इस लूपबैक कनेक्शन को मैन्युअल रूप से छोड़ने के लिए जब आप कर रहे हों, चलाएं:

pactl unload-module $(pactl list short modules | grep "loopback.*$BTSOURCE" | cut -f1)

फिर, $BTSOURCEअपने ब्लूटूथ डिवाइस को संदर्भित करने वाले PulseAudio स्रोत के नाम के साथ बदलें । आप लोड-मॉड्यूल कमांड द्वारा लौटाए गए आईडी का उपयोग करके मॉड्यूल को भी उतार सकते हैं:

$ pactl load-module module-loopback source_dont_move=yes source=bluez_source.14_DA_E9_2A_D7_57 sink=alsa_output.pci-0000_00_14.2.analog-stereo
15
$ pactl unload-module 15

संदर्भ:

  • यह उबंटू में कैसे तय किया जा रहा है, इस पर कुछ विवरणों को रेखांकित करते हुए ब्लॉग पोस्ट

क्या हम विशेष उपकरण सिंक के लिए चैनल का नक्शा बदल सकते हैं
प्रकाश वी होल्कर

हाय वहाँ और विस्तृत गाइड के लिए धन्यवाद। आदेश pactl load-module module-bluethooth-discoverubuntu स्टूडियो 14.04 में विफल रहता है। इसलिए मुझे कोई bluezस्रोत नहीं दिखता है pulseaudio, भले ही मेरा फोन पीसी को ऑडियो सिंक के रूप में सही ढंग से देखता है। कोई विचार?
नास

यदि pactl list sources shortआपके लिए ब्लूज़ स्रोत नहीं दिखा है, तो मुझे दो संभावित समाधान मिले हैं: कॉल gdbus call --system --dest org.bluez --object-path /org/bluez/XXX/hci0/dev_XX_XX_XX_XX_XX_XX --method org.bluez.AudioSource.Connectजहां (पथ में डिवाइस BD पता और एडेप्टर पथ wich शामिल हो सकता है gdbus call --system --dest org.bluez --object-path / --method org.bluez.Manager.DefaultAdapter)। या यहां बताए अनुसार डी-फीट का उपयोग करें । अन्यथा फोन पक्ष पर कनेक्ट करें, और कुछ खेलना शुरू करें।
ट्रेविनाओ

मुझे अभी भी ब्लूज़ से कोई स्रोत दिखाई नहीं दे रहा है। लिनक्स मिंट 17.3 "रोजा" यहां।
दान

1
वाह! न्यूनतम परिवर्तन (/etc/bluaxy/main.conf के बजाय Audio.conf) के साथ यह रसियन पर काम करता है। धन्यवाद! (उस ओएस में नो लूपबैक कॉन्फ़िगरेशन की आवश्यकता है)
जेमी

13

मैं उबंटू सॉफ्टवेयर सेंटर से स्थापित ब्लिमर का उपयोग करता हूं। ब्लूमैन आइकन पर राइट-क्लिक करने पर * -> "स्थानीय सेवाएं" -> ऑडियो-> "उन्नत ऑडियो रिसेप्शन" की जाँच करें। Btw मैं इसे अपने Ubuntu 11.10 लैपटॉप में सुनने के लिए उपयोग करता हूं जो मैं अपने एंड्रॉइड फोन पर खेलता हूं।

* ब्लूमैन आइकन को नीचे के दाएं कोने में गनोम शेल + ubuntu 11.10 में दिखाया गया है, यही मेरा मामला है। मुझे उम्मीद है कि यह आपके लिए किसी तरह से उपयोगी है।


ऑडियो के लिए ब्लूमैन कॉन्फ़िगरेशन इंटरफ़ेस केवल /etc/blu ब्लूटूथ/audio.conf में = स्रोत मान को सेट करता है, इसलिए मैं यह नहीं देखता कि यह कैसे Android को ऑडियो आउटपुट के रूप में कंप्यूटर का उपयोग करने में सक्षम करेगा।
slangasek

ठीक है, इसलिए यदि मैं ऑडियो.कॉन्फ़ में सेट करता हूं और फिर कनेक्शन के दोनों ओर से अनपेयर करता हूं, तो ऐसा लगता है कि एंड्रॉइड कंप्यूटर को सभी के बाद ऑडियो सिंक के रूप में देखने के लिए पर्याप्त है ...
slangasek

मैंने कोशिश की और ऑडियो सिंक के रूप में इसे पहचानने के लिए इसे प्राप्त नहीं कर सका। : - /
जॉर्ज कास्त्रो

blueman ने मेरे लिए 12.04 में शून्य अंक के साथ काम किया, इसके अलावा मैंने अपने संकेतक एप्लेट में दो ब्लूटूथ आइकन के साथ समाप्त किया।
एचडीवी

7

यह Ubuntu 12.04 में अब वास्तव में सरल है

अपने ब्लूटूथ डिवाइस से कनेक्ट करें

अपने ब्लूटूथ डिवाइस की खोज करें और इसका सोर्स नंबर नोट करें:

pactl list sources 

ब्लूटूथ डिवाइस के लिए एक लूपबैक बनाएं:

pactl load-module module-loopback source=$SOURCE_NUMBER  

जहाँ $ SOURCE_NUMBER वह संख्या है जिसे आपने पहले नोट किया था।

उदाहरण के लिए, मैंने काम करने के लिए ऑडियो प्लेबैक प्राप्त करने के लिए निम्नलिखित दर्ज किया:

$ pactl load-module module-loopback source=3  

बस! मैंने शीर्ष उत्तर में हल को थोड़ा जटिल पाया, इसलिए मैंने इसे इस तरह सरल बनाया (बहुत कम टाइपिंग और कॉपी / पेस्ट करना)। हालाँकि आप ब्लूटूथ डिवाइस से पहले सूचीबद्ध किसी भी ऑडियो डिवाइस को हटा देंगे तो मेरा समाधान शायद टूट जाएगा pactl list sources

इसके अलावा, ब्लूटूथ डिवाइस को डिस्कनेक्ट करने से पहले लूपबैक मॉड्यूल को हटाना न भूलें:

आपके द्वारा बनाए गए लूपबैक डिवाइस के मॉड्यूल नंबर पर ध्यान दें:

pactl list short modules

लूपबैक डिवाइस निकालें:

pactl unload-module $MODULE_NUMBER

पिछले उत्तर 12.04 की रिलीज से पहले लिखे गए थे, इसलिए मुझे यकीन है कि कुछ बदलाव हुए थे। उदाहरण के लिए, मुझे ब्लूटूथ डिवाइस को ऑडियो स्रोत के रूप में उपयोग करने में सक्षम नहीं होना चाहिए (यह डिफ़ॉल्ट रूप से सक्षम था)। हालाँकि, मुझे कभी-कभी अपने फोन में अपने ब्लूटूथ सेटिंग्स में "मीडिया ऑडियो" प्रोफ़ाइल को टॉगल करना पड़ता है (सैमसंग कैप्टेन रनिंग स्यानोजेनमॉड 9.1.0)।

ब्लूटूथ A2DP डिवाइस कनेक्शन देखने के लिए शेल स्क्रिप्ट का उपयोग करके dbus- मॉनीटर का लाभ उठाने का एक तरीका शायद है और स्वचालित रूप से इसके लिए लूपबैक मॉड्यूल लोड करता है, लेकिन यह मेरे सिर पर थोड़ा सा है।

उम्मीद है कि हमें Ubuntu 12.10 में मैन्युअल रूप से ऐसा करने की आवश्यकता नहीं होगी।


विशेष सिंक के लिए मॉड्यूल-लूपबैक लोड करने के बाद, क्या हम विशेष रूप से बाएं या दाएं के लिए विशेष रूप से मॉड्यूल-लूपबैक के चैनल मैप को बदल सकते हैं
प्रकाश वी होल्कर

3

13.04 के लिए, अपने सोर्स डिवाइस को ubuntu लैपटॉप के साथ पेयर करें और यह सिर्फ काम करता है! यह पता लगाने के लिए बहुत अच्छा है कि यह अब आसान था।


2

Ubuntu 16.04 में यह आउट-ऑफ-द-बॉक्स काम करता है।


समान, हालांकि निम्नलिखित (अप्रमाणित) बग इसे रोक रहा था, सिस्टम जर्नल में पकड़ा गया: askubuntu.com/questions/689281/…
ThorSummoner

0

जवाब से भी आसान उपाय।

आप बस जा सकते हैं

sudo apt-get install pulseaudio*

फिर रिबूट करें। रिबूट के बाद, अपने ब्लूटूथ से कनेक्ट करें और बस अपने फोन पर संगीत चलाएं। सब कुछ आपके कंप्यूटर पर प्रेषित हो जाएगा और कंप्यूटर के स्पीकर पर चला जाएगा।

और हाँ! आपका स्वागत है।


apt-getनियमित अभिव्यक्ति का उपयोग करता है, वाइल्डकार्ड का नहीं। तो आपको पता नहीं है कि क्या उपयोग करके स्थापित किया जाएगा pulseaudio*(संकेत: यह सिर्फ पैकेज नहीं है जो इसके साथ शुरू होता है pulseaudi)। और PulseAudio पहले से ही डिफ़ॉल्ट Ubuntu इंस्टॉलेशन का हिस्सा है।
मुरु

हाँ! लेकिन यह उन सभी आलसी लोगों के लिए काम करेगा जो चाहते हैं कि चीजें तुरंत काम करें।
अडेल अबुला - मैजेबिनल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.