Rilevare se la scheda audio sta processando dati audio
Vai alla navigazione
Vai alla ricerca
Per rilevare se una o più schede audio, e quali loro dispositivi, stanno eventualmente processando dati audio, è possibile utilizzare questo codice:
Private Const ASOUND As String = "/proc/asound"
Public Sub Main()
Dim c As Byte
Dim ss As New String[]
Dim ca, pc, su As String
' Verifica innanzitutto quante schede audio sono rilevate dal sistema:
Print "Il sistema ha rilevato num. " & Dir(ASOUND, "card*", gb.Directory).Count & " Schede audio:"
ss = Split(File.Load(ASOUND &/ "cards"), gb.NewLine)
Repeat
If InStr(ss[c], "]:") == 0 Then
ss.Remove(c, 1)
Else
Inc c
Endif
Until c == ss.Count
c = 0
' Mostra i dispositivi delle schede audio rilevate evidenziando quello che sta eventualmente processando segnali audio:
For Each ca In Dir(ASOUND, "card*", gb.Directory)
Print "\n\n"; ss[c]
For Each pc In Dir(ASOUND &/ ca, "pcm*p", gb.Directory)
Print " [Dispositivo ]: " &/ ca &/ "\e[1m"; pc
For Each su In Dir(ASOUND &/ ca &/ pc, "sub*", gb.Directory)
If InStr(File.Load(ASOUND &/ ca &/ pc &/ su &/ "status"), "RUNNING") > 0 Then
Print "\e[32mQuesto dispositivo della scheda audio sta processando segnali audio !\e[0m"
Else
Print "\e[0m\e[31mQuesto dispositivo della scheda audio non sta processando alcun segnale audio.\e[0m"
Endif
Next
Next
Inc c
Next
End
Se il dispositivo audio rilevato termina con la lettera "p" (ad esempio: pcm0p ), allora esso è un dispositivo di esecuzione dei dati audio. Infatti "p" sta per "PLAYBACK".
Se il dispositivo audio rilevato termina con la lettera "c" (ad esempio: pcm0c ), allora esso è un dispositivo di registrazione di dati audio. Infatti "c" sta per "CAPTURE".