Come scoprire ALSA funzionalità del dispositivo audio di programmazione in Linux senza dover aprire il dispositivo

StackOverflow https://stackoverflow.com/questions/1866673

  •  18-09-2019
  •  | 
  •  

Domanda

Come faccio a sapere le funzionalità dei dispositivi ALSA senza aprire prima il dispositivo? Il problema è, ho bisogno di fornire i parametri alla funzione snd_pcm_open() per utilizzare le funzioni di test che per me è stupido. Perché chiedere se questa è una riproduzione o dispositivo di registrazione se devo dire che per la funzione di apertura prima?

Per fare un esempio, vorrei elencare tutti i dispositivi di riproduzione, ma l'unico modo che posso pensare sta cercando di aprire tutti i dispositivi trovo (con snd_device_name_hint()) e cercare di aprirli in modalità di riproduzione e se riesco ad aprire, tutto è andato bene.

Il problema è che, con tutte le possibili variazioni (frequenza di campionamento, canali, ecc) ci sarebbe stato un gran numero terribile di s open () 'ho bisogno di eseguire per scoprire i parametri.

È stato utile?

Soluzione

Utilizza snd_ctl_next iterare su tutti i dispositivi, quindi snd_ctl_open per ottenere informazioni relative al dispositivo -. Questo non è lo stesso di snd_pcm_open, che potrebbe fallire se un altro programma ha il dispositivo aperto o se si dispone di impostazioni cattivi

E 'abbastanza densa, ma ecco qualche codice open-source che itera su tutti i dispositivi ALSA si poteva guardare: https://app.assembla.com/spaces/portaudio/git/source/master/src/hostapi/alsa/pa_linux_alsa.c -. ricerca di BuildDeviceList per iniziare

Altri suggerimenti

E 'stato il mio primo requisiti per Linux progetti / unix in cui ho bisogno di conoscere tutte le funzionalità di dispositivi audio disponibili. Poi ho bisogno di usare questi dispositivi per catturare e riprodurre l'audio. Quello che ho fatto è abbastanza semplice. C'è un comando di Linux / Unix che viene utilizzato per trovare i dispositivi attraverso alsa utilità in linux.

Si tratta di:

aplay -l

Ora quello che ho fatto è solo fare un programma per dare il fuori come come come questo alsa.

Per l'aiuto di tutti quelli che hanno fatto una (.so) biblioteca e un'applicazione di esempio che dimostra l'uso di questa libreria in C ++.

L'uscita della mia biblioteca è come -

[root@~]# ./IdeaAudioEngineTest
HDA Intel plughw:0,0
HDA Intel plughw:0,2

Questa libreria può anche catturare e riprodurre i dati audio in tempo reale.

E 'disponibile con la documentazione in IdeaAudio biblioteca con Duplex Alsa Audio

Fornendo è possibile eseguire un comando di shell. Poi aplay è tuo amico.

http://alsa.opensrc.org/Aplay

aplay -l

  

lista tutte le schede audio e audio digitale   dispositivi

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top