Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: sigmund - 15 Marzo 2009, 11:52:58

Titolo: Rilevare I/O audio
Inserito da: sigmund - 15 Marzo 2009, 11:52:58
Ciao a tutti ho il seguente problemino:
Esiste un metodo che permetta a Gambas di rilevare se la scheda audio stà riproducendo qualcosa ?
Stesso problema per l'input microfonico.
A me basterebbe rilevare la presenza del segnale, in parte ho risolto usando un programma esterno (record) ma non mi sembra il metodo migliore (poco gambasiano).
Titolo: Re: Rilevare I/O audio
Inserito da: madnessmike - 15 Marzo 2009, 14:14:19
Per vedere se la scheda audio è occupata o no per riprodurre un suono ho fatto così, sfruttando la proprietà del catch, che viene attivato in caso di errore di un comando:

Codice: [Seleziona]

PUBLIC SUB Suona()
  DIM SoundToPlay AS Sound
  SoundToPlay= NEW Sound("nomefile")
  SoundToPlay.Play()
  CATCH
    PRINT "Device occupato"
END
Titolo: Re: Rilevare I/O audio
Inserito da: md9327 - 16 Marzo 2009, 20:07:07
Puoi anche evitare di mandare in CATCH il codice:

Codice: [Seleziona]

PUBLIC SUB Suona()
  DIM SoundToPlay AS Sound
  SoundToPlay= NEW Sound("nomefile")
  TRY SoundToPlay.Play()
  IF ( ERROR ) THEN
    PRINT "Device occupato"
  END IF
END
Titolo: Re: Rilevare I/O audio
Inserito da: vuott - 30 Giugno 2013, 23:07:02
.... ma non mi sembra il metodo migliore (poco gambasiano).

Un modo ancor meno gambasiano, ma molto sbrigativo ed efficace  ;D , è di lanciare da terminale la seguente linea di comando:

 ~ $ cat < /proc/asound/card0/pcm0p/sub0/status

(il numero identificativo presente nel nome pcm0p del dispositivo audio della scheda può essere anche diverso: pcm1p, pcm2p, etc)

Se il risultato è "closed", significa che la scheda audio (in questo caso la prima, qualora ve ne siano due o più disponibili, identificata con il numero zero) non sta processando alcun segnale audio.

(http://files.websitestool.com/papaki6158/image/9ia_1.gif)(http://files.websitestool.com/papaki6158/image/j08eih.jpg)
 
Titolo: Re: Rilevare I/O audio
Inserito da: vuott - 16 Novembre 2013, 02:23:11
...ma, ovviamente, è possibile anche una soluzione tutta gambasiana:

http://www.gambas-it.org/wiki/index.php?title=Rilevare_se_la_scheda_audio_sta_processando_dati_audio