ALSA再生モノラルファイルですが使用できないチャンネル番号を返します。

ALSA再生モノラルファイルですが使用できないチャンネル番号を返します。

test.wavALSAを使ってスピーカーで再生したいファイルがあります。私のシステムにもsoxがインストールされています。すべてのサウンドカードが正しく取り付けられています。aplay -Lそしてarecord -L正しい値を返します。

しかし、私はこれをプレイできませんでしたtest.wav

aplay -c1 -r 48000 -f S16_LE test.wav
$ Playing WAVE 'test.wav': Signed 16 bit Little Endian, Rate 48000 Hz, Mono
  aplay: set_params:1345: Channels count non available

しかし、soxを使用すると、システムに問題はなく、ファイルは実際には16ビット1チャンネルと表示されます。

$ Encoding: Signed PCM
  Channels: 1 @ 16-bit
  Samplerate: 48000Hz

その理由が何であるかはよくわかりません。助けてくれてありがとう!よろしくお願いします!

編集する:

  1. 端末に印刷されたメッセージを手動で入力したときに間違いをしたし、SoXを使ってみると本当に1@16ビットでした。

  2. .asoundrc

pcm.!default {
 type hw
 card 0
}
ctl.!default {
 type hw
 card 0
}
  1. 使用するときはチャンネル数を指定する必要がありますarecordarecord -c 2 -r 48000 -f S16_LE test.wav それ以外の場合は、上記のエラーが返されます。ただし、test.wav録音を使用すると再生に問題はありませんarecord。奇妙なことは、test.wav他の場所からもたらした場合は再生できないことです。

ベストアンサー1

piユーザーが使用しているデバイスの構成を変更すると、hwすべての自動サンプル形式変換が無効になりました。

カード番号のみを設定するには、以下を使用してください。

defaults.pcm.card 0
defaults.ctl.card 0

すべてのユーザーに対してこの設定を変更するには、に入力します/etc/asound.conf

おすすめ記事