Visual Basic - audio con mciExecute

Life is soft - evento anual de software empresarial
 
Vista:

audio con mciExecute

Publicado por eduard0 (2 intervenciones) el 26/06/2009 23:31:47
Buenas tardes: Hace un par de días me brindaron un enlace sobre como reproducir un audio, de las opciones que me ofrecía decidí usar mciExecute.
Como había mencionado, estoy tratando de hacer un pequeño formulario que me reproduce un archivo de audio, para ello estoy usando el api mciExecute. El programa me reproduce el audio bien, pero tengo un label en el que debo mostrar el tiempo de duración del audio y otro label que va mostrando el avance del audio asi como también un
control Slider.
No se como capturar los datos para los label y tampoco se como hacer avanzar el slider si por favor me pudieran echar una mano, estaré muy agradecido. Ah y una cosita más como hago para que no se reproduzca mientras no se pulse la tecla F1.
y si está reproduciéndose, al pulsar dicha tecla vaya al inicio del audio.

Aquí les dejo mi avance , muchas gracias.

Option Explicit

'Función Api GetShortPathName para obtener los paths de los archivos en formato corto
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal lBuffer As Long) As Long

'Función Api mciExecute para reproducir los archivos de música
Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long

Dim ret As Long, path As String

'Sub que obtiene el path corto del archivo a reproducir
Private Sub PathCorto(archivo As String)
Dim temp As String * 250 'Buffer

path = String(255, 0)
'Obtenemos el Path corto
ret = GetShortPathName(archivo, temp, 164)
'Sacamos los nulos al path
path = Replace(temp, Chr(0), "")
End Sub

'Procedimiento que ejecuta el comando con el Api mciExecute
'************************************************************
Private Sub ejecutar(comando As String)
If path = "" Then MsgBox "Error", vbCritical: Exit Sub
'Llamamos a mciExecute pasandole un string que tiene el comando y la ruta

mciExecute comando & path

End Sub

Private Sub Form_Load()
cmdGuardar.Enabled = False
txtTexto.Enabled = False
txtTexto.BackColor = &H8000000F
sldDuración.Enabled = False
End Sub

Private Sub cmdAbrir_Click()
Dim segundos As Double

cdialog.Filter = "Archivos Mp3|*.mp3|Archivos Wav|*.wav|Archivos MIDI|*.mid"
cdialog.ShowOpen

If cdialog.FileName = "" Then
txtTexto.Enabled = False
txtTexto.BackColor = &H8000000F
Else
lblIniciar.Visible = True
txtTexto.Enabled = True
txtTexto.BackColor = &H80000005
PathCorto (cdialog.FileName)
lblRuta.Caption = cdialog.FileName
lblIniciar.Visible = True
txtTexto.SetFocus
mciExecute "Close All"
ejecutar ("Play ")

sldDuración.Enabled = True
sldDuración.Value = 0

End If
End Sub

Private Sub cmdGuardar_Click()
cdialog.ShowSave
End Sub

'Le pasamos el comando Close a MciExecute para cerrar el dispositivo
Private Sub Form_Unload(Cancel As Integer)
mciExecute "Close All"
End Sub

Private Sub txtTexto_Change()
If txtTexto.Text <> "" Then
cmdGuardar.Enabled = True
Else
cmdGuardar.Enabled = False
End If
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder