Título: mciSendString Publicado por: CsarGR en 5 Mayo 2007, 20:05 pm ¿Alguien sabe como utilizar el "mciSendString"?
Mi intencion es la de reproducir varios .wav con el. Por el momento no he sido capaz de trabajar con el, agradeceria cualquier ayuda con "mciSendString" Gracias Título: Re: mciSendString Publicado por: ~~ en 5 Mayo 2007, 20:18 pm Hola, mira un ejemplo para hacer sonar una cancion
Código: 'módulo: El archivo tiene q ser Wav o Midi Y otro ejemplo de mciSendString de la api guide: Código: 'This project needs a Common Dialog box, named 'CDBox' 1S4ludo Título: Re: mciSendString Publicado por: CsarGR en 6 Mayo 2007, 11:52 am He probado ambas soluciones y ninguna me funciona.
Lo que pretendo es reproducir dos sonidos a la vez, pero estoy viendo que sino hay objetos, con el "mcsendstring" cuando pare uno, pararan los dos. Es decir, con mcisendstring no podré reproducir dos sonidos wav a la vez, que es lo q quiero. ¿Sabeis qué puedo hacer? Gracias Título: Re: mciSendString Publicado por: CsarGR en 6 Mayo 2007, 19:29 pm ¿alguien puede decirme que hago mal?
Cuando utilizo el mcisendstring sp devuelve un numero enorme (y no "0" como deberia ser si fuera bien) y no reproduce nada. La direccion del sonido .wav esta bien. Si alguien puede probarlo y decirme qué esta mal se lo agradecería, pq tengo q utilizar el mcisendstring (No puedo utilizar ningun ocx) Mi codigo es el sg: Public Class Form1 Inherits System.Windows.Forms.Form Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long Declare Function mciGetErrorString Lib "winmm.dll" Alias "mciGetErrorStringA" (ByVal dwError As Long, ByVal lpstrBuffer As String, ByVal uLength As Long) As Long Private Direccion As String Private cadena As String Sub MandarMensaje(ByVal mensaje As String) Dim resultado As Long cadena = Space(255) resultado = mciSendString(mensaje, cadena, Len(cadena), 0) BuscarError(resultado) End Sub Sub BuscarError(ByVal número As Long) Dim errorBE As String errorBE = Space(255) mciGetErrorString(número, errorBE, 255) Label1.Text = errorBE End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim openFileDialog1 As New OpenFileDialog openFileDialog1.InitialDirectory = CurDir() & "\Sonidos" openFileDialog1.FilterIndex = 1 openFileDialog1.RestoreDirectory = True If openFileDialog1.ShowDialog() = DialogResult.OK Then Direccion = openFileDialog1.FileName TextBox1.Text = Direccion MandarMensaje("close archivowav") MandarMensaje("open " & Direccion & " type waveaudio alias archivowav") MandarMensaje("set archivowav time format milliseconds") MandarMensaje("status archivowav length") If Val(Trim(cadena)) <> 0 Then ' Si dicho tiempo es distinto de 0 ProgressBar1.Minimum = 1 ProgressBar1.Maximum = Val(cadena) ProgressBar1.Value = 1 Slider1.Minimum = 1 Slider1.Maximum = Val(cadena) Slider1.Value = 1 End If Label2.Text = Format(Val(cadena), "MM:SS") End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Timer1.Enabled = True MandarMensaje("play archivowav from 0") End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick MandarMensaje("status archivowav position") ProgressBar1.Value = Val(cadena) Slider1.Value = Val(cadena) Label2.Text = Format(ProgressBar1.Maximum - Val(cadena), "MM:SS") End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click MandarMensaje("stop archivowav") Timer1.Enabled = False End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click If Button4.Text = "Pausa" Then MandarMensaje("pause archivowav") Button4.Text = "Continuar" Else MandarMensaje("resume archivowav") Button4.Text = "Pausa" End If End Sub End Class Gracias a todos Título: Re: mciSendString Publicado por: CsarGR en 7 Mayo 2007, 12:47 pm Así se verá mejor:
No veo donde está el fallo. Espero que alguien vea donde esta el fallo Código: Public Class Form1 Título: Re: mciSendString Publicado por: ~~ en 7 Mayo 2007, 13:21 pm A lo mejor es por la ruta, prueva a obtener la ruta corta por q creo recordar q rutas como C:\archivo de programa o ese tipo de nombres con mas de 8 caracteres no funcionan.
Tienes q obtener el nomre corto con la api GetShortPathName ;) Prueva y nos cuentas q tampoco estoy 100% seguro 1S4ludo |