2016-01-23 29 views
2

我正在嘗試創建一個應用程序,它將以音頻流的方式傳輸音頻以及提供LED VU表示音頻流。Rpi wheezy在USB和虛擬卡上的重複捕獲

我已經創建了一個虛擬卡。該卡被alsamixer,aplay和arecord識別,但我無法將來自usb卡(hw:0,0)的線路輸入信號傳輸到虛擬卡(hw:2,0)。

我嘗試了幾個.asoundrc腳本,我在你的Q & A以及Google上使用alsa dmix,dsnoop和multi找到了這兩個腳本,但是到目前爲止沒有任何工作。

我目前使用一個在一個終端自動啓動的python程序(LED_VU.py),第二個終端使用第二個包含Darkice(streamer.diDual.py)的python程序。該LED項目的配置部分:

### LED VU Meter on RPI ### 

#!/usr/bin/env python 

import alsaaudio as AA 
import audioop 
from time import sleep 
import RPi.GPIO as GPIO 
GPIO.setmode(GPIO.BOARD) 
GPIO.setwarnings(False) 

#Define physical header pin numbers for 10 LEDs 

RPiPins=[11,12,13,15,16,18,22,7,3,5] 

#set all pins as output 

for pin in RPiPins: 
    GPIO.setup(pin, GPIO.OUT) 

#Set up audio 

card = 'hw:0,0' 

darkiceDual.cfg的configuation部分:

# Darkice Configuration File - Generated by Streamer 

[general] 
duration  = 0  # duration of encoding, in seconds. 0 means forever 
bufferSecs = 5  # size of internal slip buffer in seconds 
reconnect  = yes # reconnect to server if disconnected 

[input] 
device  = hw:2,0 # alsa usb soundcard device for audio input 
sampleRate = 44100 # sample rate in Hz 
bitsPerSample = 16  # bits per sample 
channel  = 2  # channels. 1 = mono, 2 = stereo 

我.asoundrc文件是:

pcm.!default { 
    type plug 
    slave.pcm "mdev" 
    route_policy "duplicate" 

} 

pcm.mdev { 
    type multi 

    slaves.a.pcm "hw:0,0" 
    slaves.a.channels 2 
    slaves.b.pcm "dmixer" 
    slaves.b.channels 2 

    bindings.0.slave a 
    bindings.0.channel 0 
    bindings.1.slave a 
    bindings.1.channel 1 
    bindings.2.slave b 
    bindings.2.channel 0 
    bindings.3.slave b 
    bindings.3.channel 1 
} 

pcm.dmixer { 
    type dmix 
    ipc_key 1024 
    slave { 
     pcm "hw:2,0" 
     period_time 0 
     period_size 1024 
     buffer_size 4096 
     rate 44100 
     channels 2 
     format S16_LE 
    } 
} 

我在做什麼錯?

如果我使用hw:2,0,並且如果使用hw:0,0(LED_VU.py正在使用這個),則會出現'無法連接'錯誤。如果我將LED程序的卡片設置更改爲hw:2,0,則LED將全部點亮並鎖定。

任何幫助表示讚賞!

謝謝你的幫助。這兩個程序都按預期使用USB線。

我現在無法使用alsamixer或amixer。 Pulseaudio現在正在引發這個問題。如果已安裝,則LED_VU.py程序將不會運行。當它被卸載時,python程序將運行,但不是alsamixer。

回答

0

顯然,您想要從相同的音頻數據中運行VU表和DarkIce,即您需要允許兩個程序共享一個錄製設備。

這可以通過dsnoop插件完成。 USB設備默認啓用。

告訴兩個程序從設備default進行記錄。如果這是重新定義,請嘗試dsnoop:0