aplay命令混乱。

时间:2012-01-19 06:43:52

标签: linux bluetooth dbus alsa

在这里,我想了解这个命令。

aplay -D hw:0,0 /opt/WL1271_demo_01/gallery/Pop.wav

为什么我们使用asound.conf文件。

我们需要在此文件中更新免提设备的蓝牙地址才能在免提设备中播放音频?

任何人都可以解释一下aplay命令及其工作原理吗?

为什么我们在这里使用-D hw:0,0

为什么我们这里没有使用-Dplug:bluetooth hw:0,0

=============================================== ===================

这是我的/etc/asound.conf文件

    pcm.!bluetooth {
    type bluetooth
    device 00:23:78:41:AB:9F
        playback_ports {
                0 alsa_pcm:playback_1
                1 alsa_pcm:playback_2
        }
        capture_ports {
                0 alsa_pcm:capture_1
                1 alsa_pcm:capture_2
        }

    }

pcm.!default {
    type plug
    slave.pcm bluetooth
    }


pcm.jack {
        type jack
        playback_ports {
                0 alsa_pcm:playback_1
                1 alsa_pcm:playback_2
        }
        capture_ports {
                0 alsa_pcm:capture_1
                1 alsa_pcm:capture_2
        }
}

2 个答案:

答案 0 :(得分:1)

您将aplay直接指向某个硬件(hw:0,1 - 第一个声音设备的第二个输出),而不是让它使用您的asound.conf定义。试试这个:

aplay -D bluetooth -c 2 -f S16_LE abc.wav

请注意,如果您以这种方式使用ALSA接口,那么使用该设备的任何其他设备(例如Pulse Audio守护程序)都会使其无法正常工作。你可以使用Pulse Audio而不是'raw'ALSA,但我无法帮助你。

更新

  

为什么我们在这里使用-D hw:0,0

我们怎么知道?你提供了命令。这意味着:直接使用(这意味着:忽略asound.conf文件中的别名)第一个音频硬件的第一个输出(这通常意味着主声卡的输出)。

  

我们为什么不在这里使用-Dplug:bluetooth hw:0,0?

因为'-D'选项接受单个参数。这可以是'hw:0,0',这可以是'plug:bluetooth',这可以是asound.conf文件中定义的任何别名(如文件中定义的'jack'或'bluetooth'),但是它必须是一个参数。 'plug:bluetooth hw:0,0'将是两个参数。

  

为什么我们使用asound.conf文件。

  1. 不必直接为每个命令提供特定的设备地址。您可以在asound.conf中设置默认值,并省略所有“-D something”选项
  2. 为音频输出提供更复杂的配置
  3. http://www.alsa-project.org/main/index.php/Asoundrc#The_naming_of_PCM_devices

答案 1 :(得分:0)

您的脉冲音频设置似乎有问题。 Here是ubuntu手册,用于解决蓝牙设置问题,包括播放。 Here是ubuntu的蓝牙设置手册。

从您的配置中我发现您缺少设备名称,即“aplay -D 默认 hw:0,1 -c 2 -f S16_LE abc.wav&”。对于我的耳机,我使用了一个示例here,到目前为止它对我有效。