2017-06-06 26 views
-1

私はaplay -l, lsusbから次を得る:Raspberry PiでC++/libao/alsaを使用してUSBサウンドカード経由でオーディオを再生するには?

[email protected]:~ $ aplay -l 
**** List of PLAYBACK Hardware Devices **** 
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA] 
    Subdevices: 8/8 
    Subdevice #0: subdevice #0 
    Subdevice #1: subdevice #1 
    Subdevice #2: subdevice #2 
    Subdevice #3: subdevice #3 
    Subdevice #4: subdevice #4 
    Subdevice #5: subdevice #5 
    Subdevice #6: subdevice #6 
    Subdevice #7: subdevice #7 
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI] 
    Subdevices: 1/1 
    Subdevice #0: subdevice #0 
card 1: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio] 
    Subdevices: 1/1 
    Subdevice #0: subdevice #0 
card 2: Device_1 [USB PnP Sound Device], device 0: USB Audio [USB Audio] 
    Subdevices: 1/1 
    Subdevice #0: subdevice #0 
[email protected]:~ $ lsusb 
Bus 001 Device 005: ID 046d:c31c Logitech, Inc. Keyboard K120 for Business 
Bus 001 Device 008: ID 0d8c:013c C-Media Electronics, Inc. CM108 Audio Controller 
Bus 001 Device 007: ID 0d8c:013c C-Media Electronics, Inc. CM108 Audio Controller 
Bus 001 Device 006: ID 05e3:0606 Genesys Logic, Inc. USB 2.0 Hub/D-Link DUB-H4 USB 2.0 Hub 
Bus 001 Device 004: ID 1bcf:0005 Sunplus Innovation Technology Inc. 
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter 
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 

私はlibaoでCM108オーディオコントローラを経由して、私のMP3を再生したいです。私はこれらを試しました:

ao_initialize(); 
ao_option aoption; 
ao_option *poption; 
poption = &aoption; 
poption->key = (char*)"dev"; 
poption->value = (char*)"hw:0"; 
dev = ao_open_live(driver, &format, poption); 
    while (mpg123_read(mh, buffer, buffer_size, &done) == MPG123_OK) 
     ao_play(dev, (char *)buffer, done); 

サウンドはPiを介して正常に再生されます。私はhw:0がPiのサウンドカードであることを理解しています。第1または第2のCM108オーディオコントローラで再生したい場合、hw:0の代わりに何を使うべきですか?私はすでにhw:1とhw:2を試しましたが、うまくいきません。

+0

aplayでwaveファイルを再生できますか?このコマンドを使用してください。aplay -D 'hw:1' file.wav – Varun

答えて

0

alsaを使用して、rpi用のUSBサウンドアダプタから音声を録音して再生するには、以下の手順に従ってください。これで、あなたのUSBサウンドアダプタが入出力モジュールとして正しく動作しているかどうかをテストすることができます。私は上記のライブラリをC++コードで使用する前にテストしていません。あなたのC++コードの後ろで "hw:1"を参照してください。

ステップ: 1.1)ファイルは、それを作成存在しない場合

$vim .asoundrc 

.asoundrc /編集ファイルを作成します。

$ touch .asoundrc 

$vim .asoundrc 
pcm.!default { 
     type asym 
     playback.pcm "hw:1,0" 
     capture.pcm "hw:1,0" 
} 

ctl.!default { 
     type hw 
     card 1 
} 

1.2)alsa.confファイルの下の行を編集してください。

$sudo vim /usr/share/alsa/alsa.conf 
defaults.ctl.card 0 
defaults.pcm.card 0 

$sudo vim /usr/share/alsa/alsa.conf 
defaults.ctl.card 1 
defaults.pcm.card 1 

1.3)にコマンドを再生するにはオーディオ

$arecord -D plughw:1 -f S16_LE -r 48000 -d 5 ./testSound.wav 

1.5)コマンドを記録するためにalsamixerのユーティリティ

$alsamixer 

1.4)を使用して設定/オーディオレベルを変更します録音された音声

$aplay --device=plughw:1,0 ./testSound.wav 
関連する問題