Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Riprodurre un beep su altoparlanti esterni
Forum - C# / VB.NET - [VB.NET] Riprodurre un beep su altoparlanti esterni

Avatar
jack92 (Member)
Pro


Messaggi: 100
Iscritto: 06/08/2010

Segnala al moderatore
Postato alle 18:25
Mercoledì, 06/10/2010
Ciao a tutti
Esiste un modo per riprodurre il suono , del metodo "beep(frq,tempo)", sulle 'casse esterne' del PC ? O è pura fantascienza :D  

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
1
Down
V
Segnala al moderatore
Postato alle 12:29
Giovedì, 07/10/2010
Sulle casse esterne, quindi intendi come un suono normale (wav, mp3, ogg, ecc...)? Sì, è possibile.
Potresti creare un file wave con una sola onda di data frequenza e durata e riprodurlo. Se guardi il mio progetto Music Rider, troverai nella directory bin una libreria compilata che si chiama WaveLib. Puoi importare quella libreria e usare la classe Wave per creare un'onda. Esempio:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim w As Wave = Wave.MakeWave(1, 44100, 16, 2.0f, 440, 100)


Crea un'onda in mono (1 canale), a 44100 campioni al secondo, 16 bit, che dura 2 secondi ha una frequenza di 440Hz e il 100% di volume.
Codice sorgente - presumibilmente Plain Text

  1. W.Save("C:\onda.wav") 'salva l'onda



Per l'altoparlante interno c'è la funzione VisualBaisc.Beep, ma non ti fa scegliere la frequenza.

PM
Avatar
jack92 (Member)
Pro


Messaggi: 100
Iscritto: 06/08/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 16:43
Giovedì, 07/10/2010
Grazie mille per la risposta totem ma non c'è un modo più semplice tipo ... (codice inventato sul momento :D)
Codice sorgente - presumibilmente C++

  1. [DllImport("Kernel32.dll")]
  2. public static extern bool Beep(UInt32 frequency, UInt32 duration);
  3.  
  4. audio.play(beep(100,200));



PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
0
Down
V
Segnala al moderatore
Postato alle 16:57
Giovedì, 07/10/2010
Quella funzione usa il PC Speaker, ossia l'altoparlante interno del computer. Non c'entra nulla con la scheda audio e non è influenzato dal volume di sistema. Le casse esterne non hanno quindi nulla a che fare con il pc speaker.

P.S.: Non capisco quell'audio.play; beep restituisce un valore booleano. Inoltre, beep è una funzione sincrona e non avrebbe comunque alcun senso.

P.P.S.: Festeggio il 3000esimo messaggio!

Ultima modifica effettuata da Il Totem il 07/10/2010 alle 16:57
PM
Avatar
jack92 (Member)
Pro


Messaggi: 100
Iscritto: 06/08/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 9:30
Venerdì, 08/10/2010
Ok , allora userò la tua libreria "WaveLib" , grazie :)
Testo quotato

Postato originariamente da Il Totem:

P.P.S.: Festeggio il 3000esimo messaggio!


Congratulazioni !! :D

PM