Salve,
Mi sapete dire come posso fare per leggere byte per byte l'output prodotto da un microfono attaccato alla scheda sonora? Immagino che si debba usare la libreria directsound, ma non so proprio da dove cominciare.
Grazie a tutti.
Ciao
Salve,
Mi sapete dire come posso fare per leggere byte per byte l'output prodotto da un microfono attaccato alla scheda sonora? Immagino che si debba usare la libreria directsound, ma non so proprio da dove cominciare.
Grazie a tutti.
Ciao
Ho fatto qualche ricerca, e ho scritto questo codice:
Mi sarei aspettato di vedere stampati su schermo dei numeri rappresentanti i byte letti dal file wave, ma così non è stato. Viene stampato solo un -1 (quindi il buffer è sempre vuoto).codice:using System; using System.Collections.Generic; using System.Linq; using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using Microsoft.DirectX; using Microsoft.DirectX.DirectSound; using DS = Microsoft.DirectX.DirectSound; class Classe1 : System.Windows.Forms.Form { private DS.Device sounddevice; private SecondaryBuffer shotsound; static void Main() { System.IO.Stream data = System.IO.Stream.Null; Classe1 class1 = new Classe1(); int a = 0; class1.sounddevice = new DS.Device(); class1.sounddevice.SetCooperativeLevel(class1, CooperativeLevel.Normal); BufferDescription description = new BufferDescription(); description.ControlEffects = false; class1.shotsound = new SecondaryBuffer("suono1.wav", description, class1.sounddevice); // class1.shotsound.Play(0, BufferPlayFlags.Default); while (a != -1) { class1.shotsound.Read(0, data, 1, LockFlag.None); a = data.ReadByte(); Console.WriteLine(a); } Console.ReadLine(); } }
Se tolgo il flag di commento dalla riga
class1.shotsound.Play(0, BufferPlayFlags.Default);
sento suonare il file wav, quindi non tutto quello che ho fatto dovrebbe essere sbagliato.
Mi sapete dire come fare per ottenere quello che voglio?
Il prossimo passo sarà cercare di leggere lo stream audio direttamente dalla porta microfono...
Grazie a tutti.
Ciao
Nessuno sa aiutarmi?
forse devieseguire il programma come amministratore!?
I got the remedy
Sono loggato come amministratore, ma poi onestamente non vedo il nesso tra i diritti dell'utente e la lettura di un file wave.
Sto evidentemente sbagliando il modo di utilizzare le direct sound. Se tu volessi analizzare byte per byte un wave in modo da poter (per esempio) scatenare un evento quando viene ripropoddo uno specifico campione, come faresti?
Grazie ancora, ciao
beh stai "leggendo" da un device...Originariamente inviato da MonsterMash
Sono loggato come amministratore, ma poi onestamente non vedo il nesso tra i diritti dell'utente e la lettura di un file wave.
cmq, non è banale fare una cosa del genere.
Prova a vedere qui http://www.tek-tips.com/faqs.cfm?fid=4782
I got the remedy
Ciao, vorrei avere anchio qualche aiuto!!!
MonsterMash, sei riuscito a risolvere?
Io sto cercando di recuperare dal file WAV, i dati delle frequenze, in modo da creare un'onda...
Mi aiutate?
Non intervenire in discussioni già avviate, e vecchie di mesi, per porre un problema differente: apri una discussione separata in cui poterlo discutere il tuo caso.Originariamente inviato da uelfox
Ciao, vorrei avere anchio qualche aiuto!!!
MonsterMash, sei riuscito a risolvere?
Io sto cercando di recuperare dal file WAV, i dati delle frequenze, in modo da creare un'onda...
Mi aiutate?
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...