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-프로젝트 웹사이트.