Oppure

Loading
09/01/10 20:32
fifiddu
ciao a tutti, ho appena installato visual studio 2008 ed avevo la necessità di far eseguire in una form in stile visual basic un file wave precedentemente registrato e inserito in una cartella chiamata audio,

in visual basic 6 la procedura era la seguente:
Private Declare Function sndPlaySound Lib "winmm" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Public Sub PlaySound(strFileName As String)
sndPlaySound strFileName, 1
End Sub

Private Sub Command2_Click()
If Combo2.Text = "1" Then
Text1.Text = "UNU"
PlaySound App.Path & "\audio.wav"
end if

con questo metodo riuscivo a far ascoltare il file audio creando una specie di traduttore che in una combobox inserivo le frasi in italiano da una text avevo il risultato tradotto premendo il pulsante command2 e nello stesso tempo ascoltavo l'audio da me specificato.
ovviamente in visual studio 2008 sul pulsante la procedura che scrivo e la seguente:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If combobox1.Text = "1" Then
TextBox1.Text = "UNU"
End If

non so come far ascoltare l'audio.
spero di esser stato chiaro e che qualcuno mi dia un aiuto.
sembrerà stupido, ma come faccio ad inserire nella combobox le frasi ? in visual basic 6 era list in visual studio 2008?
aaa
10/01/10 9:34
noitide
Postato originariamente da fifiddu:

ciao a tutti, ho appena installato visual studio 2008 ed avevo la necessità di far eseguire in una form in stile visual basic un file wave precedentemente registrato e inserito in una cartella chiamata audio,

in visual basic 6 la procedura era la seguente:
Private Declare Function sndPlaySound Lib "winmm" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Public Sub PlaySound(strFileName As String)
sndPlaySound strFileName, 1
End Sub

Private Sub Command2_Click()
If Combo2.Text = "1" Then
Text1.Text = "UNU"
PlaySound App.Path & "\audio.wav"
end if

con questo metodo riuscivo a far ascoltare il file audio creando una specie di traduttore che in una combobox inserivo le frasi in italiano da una text avevo il risultato tradotto premendo il pulsante command2 e nello stesso tempo ascoltavo l'audio da me specificato.
ovviamente in visual studio 2008 sul pulsante la procedura che scrivo e la seguente:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If combobox1.Text = "1" Then
TextBox1.Text = "UNU"
End If

non so come far ascoltare l'audio.
spero di esser stato chiaro e che qualcuno mi dia un aiuto.
sembrerà stupido, ma come faccio ad inserire nella combobox le frasi ? in visual basic 6 era list in visual studio 2008?

allora per far ascoltare l'audio basta ke usi questa sintassi:
My.Computer.Audio.Play(percorso,opzioni)  'ti consiglio di provarle le opzioni xk sono molto comode

poi se ho capito bene tu vorresti ke l'utente in una combobox selezioni un numero, alla selezione del numero nella textbox appare una scritta e dopodichè viene riprodotto il suono ke corrisponde alla scritta della textbox. giusto? in questo caso se posso permettermi di darti un consiglio usa un select case per selezionare quale testo è stato inserito nella combobox, esempio:
Select Case ComboBox1.Text
            Case Is = "1"
            'tue istruzioni
        End Select

Poi per "inserire nella combobox le frasi" dovresti andare nella progettazione del form, selezionare la combobox e apparirà un piccolo triangolino in alto a destra sopra alla combobox, lo schiacci e selezioni "modifica elementi". Spero ke tu intendessi questo :k:
aaa
10/01/10 11:22
fifiddu
ho usato la funzione che dici tu in effetti e meglio dell'istruzione if eccoti l'esempio:
Public Class Form1

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Select Case ComboBox1.Text
Case Is = "1"
TextBox1.Text = "unu"
End Select
Select Case ComboBox1.Text
Case Is = "camminare"
TextBox1.Text = "caminari"
End Select
End Sub
End Class

adesso a questo esempio voglio far ascoltare un audio wave da me registrato ed associato alla parola in siciliano, ho una cartella chiamata audio dove ci sono tutte le frasi registrate da me e adesso vorrei fare in modo di richiamare i singoli file audio ma senza andare a specificare il percorso c:/ etc etc.. insomma vorrei che i file audio vengono richiamati da dentro la directory stessa da cui ho creato il programma e che quindi deve funzionare in qualsiasi pc, all'esempio che ti ho allegato puoi completarmelo come ti ho detto adesso? spero di essere stato chiaro,
il tutto lo sto facendo creando un progetto in visual basic con le windows application di visual studio 2008.
aaa
10/01/10 11:46
noitide
Postato originariamente da fifiddu:

ho usato la funzione che dici tu in effetti e meglio dell'istruzione if eccoti l'esempio:
Public Class Form1

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Select Case ComboBox1.Text
Case Is = "1"
TextBox1.Text = "unu"
End Select
Select Case ComboBox1.Text
Case Is = "camminare"
TextBox1.Text = "caminari"
End Select
End Sub
End Class

adesso a questo esempio voglio far ascoltare un audio wave da me registrato ed associato alla parola in siciliano, ho una cartella chiamata audio dove ci sono tutte le frasi registrate da me e adesso vorrei fare in modo di richiamare i singoli file audio ma senza andare a specificare il percorso c:/ etc etc.. insomma vorrei che i file audio vengono richiamati da dentro la directory stessa da cui ho creato il programma e che quindi deve funzionare in qualsiasi pc, all'esempio che ti ho allegato puoi completarmelo come ti ho detto adesso? spero di essere stato chiaro,
il tutto lo sto facendo creando un progetto in visual basic con le windows application di visual studio 2008.

allora, innanzitutto il select case usato così è sprecato :rotfl: infatti puoi fare:
Select Case ComboBox1.Text
            Case Is = "1"
                TextBox1.Text = "unu"
            Case Is = "camminare"
                TextBox1.Text = "caminari"
        End Select

e poi sotto a textbox1.text = "unu" ad esempio ci metti le altre istruzioni ke vuoi fare quindi
My.Computer.Audio.Play(percorsodelfile,opzioni)

dove percorsodelfile sta al tuo percorso e dopo ke hai inserito il percorso premi , e visual basic ti mostrerà le opzioni disponibili, oppure se vuoi puoi anke non metterle le opzioni e come default è impostata "Riproduci il suono in background".
se devi mettere ke i file audio si trovano nello stesso percorso del programma ma dentro una cartella audio non devi fare altro ke fare come facevi in vb6, cioè:
Application.StartupPath + "\audio" etc..
aaa
10/01/10 12:35
fifiddu
dove e che sbaglio?

mi da errore, purtroppo sono all'inizio del visual studio 2008 e dal visual basic 6 a qui e molto diverso almeno per me

Public Class Form1

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Select Case ComboBox1.Text
Case Is = "sveglia"
TextBox1.Text = "svegghia"
My.Computer.Audio.Play(Application.StartupPath + "audio\sveglia";)
End Select
End Sub
End Class

appena faccio il debug sembra tutto ok ma appena clicco sulla parola sveglia, mi va in errore
allego il sorgente sperando che mi sai risolvere il problema.
aaa
10/01/10 12:44
fifiddu
bho! riprovo ad allegare il file
Ultima modifica effettuata da fifiddu 10/01/10 12:46
aaa
10/01/10 13:09
noitide
allora.. probabilmente hai fatto unpo di confusione.. Il file lo aggiungi alle risorse del programma? (xk nel sorgente ke hai postato è nelle risorse del programma) oppure verrà creata la cartella sul pc dell'utente? (personalmente ti consiglio, se già non è così, di aggiungerlo alle risorse del programma). in questo caso x eseguirlo è logico ke non puoi mettere come percorso la cartella "Resources" xk non la troverà mai. infatti le risorse sono incorporate nell'exe quando vai in debug e quando compili. di conseguenza per richiamare dei file aggiunti alle risorse dei utilizzare
My.Resources.
e avrai accesso a tutte le risorse ke hai aggiunto.
quindi la tua stringa di codice si trasforma in:
My.Computer.Audio.Play(My.Resources.sveglia, AudioPlayMode.Background)

Occhio però ke quando richiami delle risorse devi per forza esplicitare il parametro di opzioni se no ti darà sempre errore.
aaa
10/01/10 14:03
fifiddu
abbi pazienza ma non ho capito il discorso di esplicitare, scusami ma sono all'inizio e quindi mi viene difficile capire,
credo che sbaglio sul fatto di mettere i file audio dentro la cartella resources o non so a cosa pensare ma appena aggiungo i file audio dentro la cartella e cerco di richiamare un file audio in debug mi da errore e la scritta My.resources.1 e anche la scritta "1" mi vengono evidenziate come se fossero errori di grammatica. eccoti quello che ho scritto:
Public Class Form1

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Select Case ComboBox1.Text
Case Is = "sveglia"
TextBox1.Text = "svegghia"
My.Computer.Audio.Play(My.Resources.sveglia, AudioPlayMode.Background)
Case Is "1"
TextBox1.Text = "unu"
My.Computer.Audio.Play(My.Resources.1, AudioPlayMode.Background)
End Select
End Sub
End Class


spero di non annoiarti e che riusciremo a venirne a capo :)
ancora grazie per la tua pazienza
aaa