test.wav
ALSAを使ってスピーカーで再生したいファイルがあります。私のシステムにも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
その理由が何であるかはよくわかりません。助けてくれてありがとう!よろしくお願いします!
編集する:
端末に印刷されたメッセージを手動で入力したときに間違いをしたし、SoXを使ってみると本当に1@16ビットでした。
.asoundrc
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
- 使用するときはチャンネル数を指定する必要があります
arecord
。arecord -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
。
答え2
以下を実行して sudo 権限の問題を解決できました。
sudo nano /root/.asoundrc
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
その後、.asoundrc
ホームディレクトリに合計を追加しました。オプションを指定せずにasound.conf
wavファイルに合計を使用できるようになりました。aplay
arecord
解決策は次のようになります。alsa - プロジェクトのウェブサイト。