[vb2008 express] problema con i suoni

venerdì 19 febbraio 2010 - 20.02

sciamanozx Profilo | Newbie

Salve baldi giovini, sono un niubbo di vb, e sto facendo un gioco per il mio nipotino di 2 anni :)

allora il programma è semplice ad ogni keyup su una text box esegue

My.Computer.Audio.Play(WAV)

dove WAV è una stringa con il persorso del file .wav
i file wav sono dei file con la lettera da pronunciare :) messi in una sottocartella del programma.

il problema è che il mio nipotino clicca tutti i tasti e mouse alla velocita della luce, e dopo un po il pc non parla più.

ho provato a mettere al keydown My.Computer.Audio.stop ma non è servito.
My.Computer.Audio.Play(WAV,AudioPlayMode.WaitToComplete ) non va bene perchè va avanti due ore a parlare da solo.

aggiornamento:
ho visto che c'è anche System.Media.SoundPlayer mi sapete dire se è piu stabile?
con uno o l'altro comando c'è modo di capire se ha finito di riprodurre il suono? perchè volevo dirgli al programma, "se non ha finito di rirpodurre il suono, allora esci dalla sub keyup.

Sapete aiutarmi?

testato su xp pro con dot net 3.5 aggiornate.



Pinky Profilo | Junior Member

Interessante (e divertente).

Ho ricreato la tua situazione e sinceramente non sono riuscito a capire il tuo problema, perchè i problemi sono più d'uno!Nel senso che non sono riuscito ad "impallare" il mio PC neanche usandolo come una pianola, ma solo a ritardare di una frazione di secondo l'esecuzione del suono alla pressione del tasto.

Ho scritto questo, cercando di inserire un "semaforo":

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

La mia idea era di NON emettere alcun suono se attualmente c'è un suono in play.

Credo che l'idea sia corretta ma l'implementazione no.
Credo che andrebbe usato un metodo asincrono per l'emissione del suono e che permetta di abbonarsi all'evento "sound_finish", al verificarsi del quale il "semaforo" diverrebbe verde.

Questa è la mia idea attuale, ma sinceramente non ho cercato come implementarla...

ciao

sciamanozx Profilo | Newbie

grazie della risposta. :)

anchio ho provato a farlo impiantare, ma senza successo; nel pomeriggio l'ho lasciato usare a mio nipote, e in 5 minuti il pc era in crisi! XD

l'unico "trucchetto" che trovato e sembra per ora funzionare, è stato far partire un timer di 1 secondo al keyup, che disabiliti l'avvio dei suoni, per poi riattivarli alla fine.

il programma è banalissimo per un programmatore, ma non pensavo che un bimbo di 2 anni mettesse in crisi in questa maniera il pc :D

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5