arm linux 3.10でalsa
を使用しています。 3つのワイヤレスデバイスがあります。snd_pcm_readi
とsendmsg
を使用し、1つは受信者として、受信したものはsnd_pcm_writei
を使用して2つのキャプチャと送信のpcmがあります。alsa snd_pcm_writeiアンダーランエラー
手順は次のとおりです。 プログラムは1送信者と1受信者の間にうまく機能します。しかし、最初の送信者を停止して2番目の送信者を開始すると、受信者側はエラーを下回りました。各送信者に対して、受信者にはデータを処理するための一意のpcmハンドルがあります。そして、すべての側は同じ設定を使用しています。ただし、送信者ハンドルは名前がdefault[snd_pcm_open(pcm_handle, "default", stream,0)]
で開き、受信者ハンドルはplug:dmix
です。 [snd_pcm_open(pcm_handle, "plug:dmix", stream,0)]
while(1)
{
recv_from();
if sender one or two's first packet
alsa init handle1 or handle2
int err = snd_pcm_writei(handle1 or 2, buffer, 224);
if(err == -EPIPE)
{
fprintf(stderr, "underrun occurred\n");
snd_pcm_prepare(handle);
continue;
}
}
目的は、受信機は、両方の送信者のための混合音を再生することができるようにすることです。誰もがこれで私を助けることができる、私はalsa
プログラミングに新しいです。前もって感謝します!