bri*_*out 63 pulseaudio bluetooth
如标题中所述,在使用 A2DP 通过蓝牙播放音频时,我遇到了半秒的延迟。
这使得无法观看电影,因为声音与视频不同步。
我不确定延迟是否由蓝牙标准、A2PD 协议、Ubuntu 12.04 上的 A2DP 实现或 Belkin Z73 蓝牙接收器引起。
无论如何,这是正常的延迟吗?有没有办法通过蓝牙播放音频而没有任何明显的延迟?
ish*_*ish 42
不,这不正常,但我的 Altec Lansing iMT525 蓝牙扬声器偶尔会遇到类似问题。与 Sri 的回答在概念上类似的东西几乎总是对我有用,而且每次连接我只需要做一次。
如果您正在寻找罪魁祸首,我会先查看 Ubuntu 的声音系统、PulseAudio,然后再查看您的蓝牙接收器。尝试这个:
首先,删除并重新配对您的蓝牙设备。
然后,将以下内容复制并粘贴到.sh您的主目录中的文件中,例如/home/brillout/pabluezswitch.sh:
#!/bin/bash
bluezcard=$(pactl list cards short | awk '/bluez/{print $2}')
pactl set-card-profile "$bluezcard" a2dp
pactl set-card-profile "$bluezcard" hsp
pactl set-card-profile "$bluezcard" a2dp
Run Code Online (Sandbox Code Playgroud)
通过打开终端并键入来使文件可执行 chmod +x ~/pabluezswitch.sh
转到Settings...Keyboard...Shortcuts,并创建自定义快捷方式;将它命名为您想要的任何名称,命令为/home/brillout/pabluezswitch.sh(在路径中替换适当的用户名!)。单击Apply,然后单击右侧的Disabled以设置执行脚本的键盘快捷键。
这样做是强制 PulseAudio 系统通过从 切换配置文件来重新同步发送到您的耳机/扬声器的音频ad2p -> hsp -> a2dp,从而有望消除任何延迟。
每当您连接并注意到延迟时,您应该按下上面选择的键盘快捷键以尝试修复延迟 - 希望它对您有用!
小智 30
sudo apt install pavucontrolpavucontrol从菜单运行Sri*_*Sri 12
无论使用何种播放器,我偶尔都会遇到类似的问题。我的是带有 MSI CR400 笔记本电脑和 Ubuntu 11.10 的诺基亚 BH-503 蓝牙立体声耳机。我碰巧遇到了一个您可以尝试的解决方法。
PoD*_*uck 11
此处的最高回复有效,但不适用于每个蓝牙音频设备。某些设备的配置文件名称与海报上的蓝牙扬声器名称不同。例如,在最初由该人发布的以下代码中,它显然具有名为a2dp和 的配置文件hsp。例如,这些都不适用于我的 LG Tones,但它们适用于我的索尼耳机等其他设备。
#!/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
Run Code Online (Sandbox Code Playgroud)
该代码适用于它出现的大多数蓝牙设备,但要使其在没有 a2dp 配置文件或 hsp 配置文件的设备上正常工作,请输入:
pactl list | grep -Pzo '.*bluez_card(.*\n)*'
Run Code Online (Sandbox Code Playgroud)
这将在找到蓝牙设备后返回所有内容。例如,使用 LG Tone Ultra 耳机,我得到了这个:
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
Run Code Online (Sandbox Code Playgroud)
我们对该profiles部分感兴趣。在本节中,我们看到三个配置文件,这是a2dp_sink,headset_head_unit和off。我们需要的两个配置文件中应该有 (A2DP Sink) 和 (HSP/HFP)。在这种情况下,它们分别a2dp_sink用于 a2dp 配置文件和headsethead_unithsp 配置文件。请注意,这与原始海报的a2dp和 不同hsp。
现在,有了上面的代码,我们将对其进行修改并将其放入一个文件中。我调用了文件bluezswitch.sh。
切换到要放置文件的目录。它可以在任何地方。
touch bluezswitch.sh
Run Code Online (Sandbox Code Playgroud)
然后
nano bluezswitch.sh
Run Code Online (Sandbox Code Playgroud)
复制和粘贴代码在此评论的最顶端和更换a2dp,并hsp与价值观你有当您运行上面的命令,并将其粘贴在该文件中。例如,这就是我的 LG Tones 文件的样子。
#!/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
Run Code Online (Sandbox Code Playgroud)
现在,ctrl-x然后y保存文件并退出 nano,然后使文件可执行:
chmod +x bluezswitch.sh
Run Code Online (Sandbox Code Playgroud)
然后按照说明设置键盘快捷键。
转到设置...键盘...快捷方式,并创建自定义快捷方式;将它命名为您想要的任何名称,命令为 /home/brillout/bluezswitch.sh(在路径中替换适当的用户名!)。单击“应用”,然后单击“禁用”的右侧以设置执行脚本的键盘快捷键。
这应该就是全部了。这应该适用于所有以前不起作用的人。
小智 10
我尝试了很多方法来解决这个问题,但没有任何方法可以解决它。然后我偶然发现了set-port-latency-offset
如果您使用的是pulseaudio,请执行以下操作:
pactl list cards short | egrep -o bluez.*[[:space:]]
Run Code Online (Sandbox Code Playgroud)
这将为您提供蓝牙界面。现在相应地设置延迟:
pactl set-port-latency-offset <INTERFACE> speaker-output 100000
Run Code Online (Sandbox Code Playgroud)
我正在使用 100000 微秒,这对我来说很好用。
小智 7
自适应差分脉冲编码调制涉及一种前瞻型压缩算法,其中在编码器有机会检查即将到来的信息的几个字节之前,信息无法传输。因此,数据必须在编码器中堆积,并且在进入和离开编码器的流之间存在固有的时间偏移。很久以前,我对数据网络延迟进行了研究,以确定数据语音电话(现在是 VoIP)的可行性。我想我的结论是 ADPCM 风格的压缩/编码会引入太多延迟。我认为要克服这个蓝牙延迟问题,人们可能需要一种非压缩类型的音频编码,它应该具有较低的延迟。
| 归档时间: |
|
| 查看次数: |
218293 次 |
| 最近记录: |