Najlepsza odpowiedź tutaj działa, ale nie dla każdego urządzenia audio Bluetooth. Niektóre urządzenia mają inne nazwy profili niż te, które ma ten plakat w głośnikach bluetooth. Na przykład w poniższym kodzie, który pierwotnie został opublikowany przez tę osobę, najwyraźniej ma ona profile o nazwach a2dp
i hsp
. Żadne z nich nie jest dostępne na przykład z moimi tonami LG, ale są one dostępne z innymi urządzeniami, takimi jak zestaw słuchawkowy Sony.
#!/bin/bash
BLUEZCARD=`pactl list cards short | egrep -o bluez.*[[:space:]]`
pactl set-card-profile $BLUEZCARD a2dp
pactl set-card-profile $BLUEZCARD hsp
pactl set-card-profile $BLUEZCARD a2dp
Wygląda na to, że ten kod będzie działał na większości urządzeń Bluetooth, ale aby działał poprawnie na tych urządzeniach, które nie mają profilu A2DP lub HSP, wpisz:
pactl list | grep -Pzo '.*bluez_card(.*\n)*'
Spowoduje to zwrócenie wszystkiego po znalezieniu urządzenia Bluetooth. Na przykład dzięki zestawowi słuchawkowemu LG Tone Ultra otrzymuję:
Name: bluez_card.B8_AD_3E_**_**_**
Driver: module-bluez5-device.c
Owner Module: 36
Properties:
device.description = "LG HBS810"
device.string = "B8:AD:3E:**:**:**"
device.api = "bluez"
device.class = "sound"
device.bus = "bluetooth"
device.form_factor = "headset"
bluez.path = "/org/bluez/hci0/dev_B8_AD_3E_**_**_**"
bluez.class = "0x240404"
bluez.alias = "LG HBS810"
device.icon_name = "audio-headset-bluetooth"
device.intended_roles = "phone"
Profiles:
a2dp_sink: High Fidelity Playback (A2DP Sink) (sinks: 1, sources: 0, priority: 10, available: yes)
headset_head_unit: Headset Head Unit (HSP/HFP) (sinks: 1, sources: 1, priority: 20, available: yes)
off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
Active Profile: a2dp_sink
Ports:
headset-output: Headset (priority: 0, latency offset: 0 usec)
Part of profile(s): a2dp_sink, headset_head_unit
headset-input: Headset (priority: 0, latency offset: 0 usec)
Part of profile(s): headset_head_unit
Interesuje nas profiles
sekcja. W tej sekcji, widzimy trzy profile, które są a2dp_sink
, headset_head_unit
i off
. Dwa profile, których potrzebujemy, powinny w nich mieć (zlew A2DP) i (HSP / HFP). W tym przypadku dotyczą one a2dp_sink
profilu a2dp i headsethead_unit
profilu hsp. Zauważ, że różni się to od oryginalnego plakatu a2dp
i hsp
.
Teraz, z powyższym kodem, zmodyfikujemy go i umieścimy w pliku. Zadzwoniłem do pliku bluezswitch.sh
.
Przejdź do katalogu, w którym chcesz umieścić plik. Może być wszędzie.
touch bluezswitch.sh
Następnie
nano bluezswitch.sh
Skopiuj i wklej kod na samym początku tego komentarza, zamień a2dp
i hsp
na wartości, które otrzymałeś po uruchomieniu powyższego polecenia, i wklej go do tego pliku. Tak na przykład wyglądał mój plik dla moich dźwięków LG.
#!/bin/bash
BLUEZCARD=`pactl list cards short | egrep -o bluez.*[[:space:]]`
pactl set-card-profile $BLUEZCARD a2dp_sink
pactl set-card-profile $BLUEZCARD headset_head_unit
pactl set-card-profile $BLUEZCARD a2dp_sink
Teraz, ctrl-x
po czym y
zapisać plik i opuścić nano, a następnie zrobić plik wykonywalny:
chmod +x bluezswitch.sh
Następnie wykonaj czynności, ustawiając skrót klawiaturowy, jak wyjaśniono.
Przejdź do Ustawienia ... Klawiatura ... Skróty i utwórz własny skrót; nazwij go, jak chcesz, za pomocą polecenia jako /home/brillout/bluezswitch.sh (podstaw odpowiednią nazwę użytkownika na ścieżce!). Kliknij Zastosuj, a następnie kliknij po prawej stronie, gdzie jest napisane Wyłączony, aby skonfigurować skrót klawiaturowy do wykonania skryptu.
To powinno być wszystko. To powinno działać dla wszystkich tych, dla których wcześniej nie działało.
mplayer
, robisz to naciskając klawisze+
i-
. W VLC nie wiem, jak ustawić opóźnienie, ale byłbym zaskoczony, jeśli VLC nie ma takiej opcji.