web-dev-qa-db-ja.com

ALSAがスピーカーから音を出さない

PCMデータの音声パケットをあるノードから別のノードに送信するアプリケーションがあります。プログラムは、起動時にwavファイルも再生します。 wavファイルは聞こえますが、音声が聞こえません。 asound.confファイルに以下を追加しました。

pcm.playmix {
  type softvol
  slave {
    pcm "hw:0,0"
  }
  control.name "SpeakerVolume"
  control.card 0
}

pcm.writeFile {
  type file
    slave {
        pcm playmix # Now write to the actual sound card
    }
    file "/tmp/output.raw"
    format "raw"
}

pcm.dsp0 {
  type plug
  slave.pcm "writeFile"
}

Audacityを使用してoutput.rawファイルを確認します。起動wavファイルとLANからのPCMオーディオの両方が存在します。しかし、LANトラフィックである受信側のコンピューターのスピーカーで音声が聞こえません。私は現在、次に何をすべきかについて行き詰まっています。データがカーネルに転送されてデバイスで再生されている間に、output.rawファイルは保存されますか? aplayを使用すると、選択したwavファイルが再生されます。私が見逃している唯一のオーディオは、LANのもう一方の端からのPCMです。

任意の提案をいただければ幸いです。

4
Tony

EMB-2610の増幅スピーカーポートのハードウェアを作成した人々は、左チャンネルにのみ配線されていることがわかりました。事前に録音したwavファイルはステレオだったので、何かを聞いています。次のALSA構成を作成して、両方のチャネルを結合しました。

    pcm.mixed {
    type dmix
    ipc_key 9752933 #must be unique for all dsnoop plugins
    ipc_key_add_uid yes
    slave.pcm "hw:1"  # or whatever
}

pcm.channel1 {
    type route
    slave {
        pcm mixed
        channels 2
    }
    ttable [ [ 1 0 ] ]
}

pcm.channel2 {
    type route
    slave {
        pcm mixed
        channels 2
    }
    ttable [ [ 0 1 ] ]
}

pcm.channel1_softvol {
    type softvol
    slave.pcm channel1
    control.name "Channel 1 Capture Volume"
}
pcm.channel2_softvol {
    type softvol
    slave.pcm channel2
    control.name "Channel 2 Capture Volume"
}

pcm.mixed_with_volumes {
    type multi
    slaves {
        a { pcm channel1_softvol channels 1 }
        b { pcm channel2_softvol channels 1 }
    }
    bindings [
        { slave a channel 0 }
        { slave b channel 0 }
    ]
}

pcm.dsp0 {
    type plug
    slave.pcm mixed_with_volumes
    ttable [ [ 1.0 1.0 ] ]
}

私はグーグル検索を使用してこれを見つけました、そして誰かが1つのストリームへの入力に接続しようとしていました。 ipc_keyは一意の番号である必要があります。

4
Tony