problema al reproducir sonido

Iniciado por Demereth, 29 Marzo 2013, 02:35 AM

0 Miembros y 1 Visitante están viendo este tema.

Demereth

Hola, en mi programa quiero reproducir un wav,
lo reproduce normalmente cuando lo pongo en
este destino: "mciExecute ("Play c:\windows
\dopasound.wav")"
pero no entiendo porque cuando lo pongo en:
"mciExecute ("Play C:\Archivos de programa
\Microsoft Visual Studio\VB98\dopasound.wav")"
me dice "El dispositivo especificado no esta
abierto o MCI no lo reconoce"
tambien me dice lo mismo cuando le pongo
"mciExecute "Play APP.PATH & \dopasound.wav"
Gracias.

ignorantev1.1

Creo por los espacios en el nombre/ruta del fichero, prubea copiando el archivo "Wav" a "C:\" y hazlo sonar desde ahí, pero si es muy necesario hacerlo desde la ruta que tratas,  busca sobre "GetShortPathName"...

¡Saludos!

Elemental Code

o usa una variable de las ENVIRON() :)

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas

BlackZeroX

#3
No te compliques la vida solo necesitas comas dentro de las comas... Las varibales de entorno NO sirve para muchos casos (ENVIRON) y ña API GetShortPathName() es un poco rentable pero mejor no incluirla para este caso sin sentido.

HAce ya rato habia hecho una dll para esto... quien sabe donde la deje... http://foro.elhacker.net/programacion_vb/mcicommandstring_dll_inframedia-t239623.0.html

aun asi te dejo un ejemplo de uso de la API:

Código (vb) [Seleccionar]


Private 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

Private Sub Form_Load()
songPath = "D:\Miguel\Mi musica\(G) Mi disco\Z145 TODA LA NOCHE (barrio pobre).mp3"
Debug.Print mciSendString("OPEN """ & songPath & """ alias ""BlackZeroX""", 0&, 0, 0)
Debug.Print mciSendString("PLAY ""BlackZeroX""", 0&, 0, 0)
Debug.Print mciSendString("STOP ""BlackZeroX""", 0&, 0, 0)
Debug.Print mciSendString("CLOSE ""BlackZeroX""", 0&, 0, 0)
End Sub



un poco mas de los comandos...

http://foro.elhacker.net/programacion_visual_basic/mcicommandstring_dll_inframedia-t239623.0.html;msg1146874#msg1146874

Dulces Lunas!¡.
The Dark Shadow is my passion.

BlackZeroX

#4
OJO en ocasiones se pega la canción cuando estas en el IDE... Asegurate de usar el comando CLOSE cuando usas Alias en el MCI... yo habitualmente uso el Close de esta manera... inclusive no podrás editar/mover el recurso (mp3) si no se a invocado CLOSE

Código (vb) [Seleccionar]


Option Explicit

Private 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
Const songPath As String = "D:\Miguel\Mi musica\(G) Mi disco\Z145 TODA LA NOCHE (barrio pobre).mp3"

Private Sub Form_Initialize()
   Debug.Print mciSendString("STOP ""BlackZeroX""", 0&, 0, 0) ' Por si se quedo pegada la cancion en el IDE, podemos usar CLOSE en lugar de STOP.
   Debug.Print mciSendString("OPEN """ & songPath & """ alias ""BlackZeroX""", 0&, 0, 0)
End Sub

Private Sub Form_Terminate()
   Debug.Print mciSendString("CLOSE ""BlackZeroX""", 0&, 0, 0) ' Liberamos el recurso...
End Sub

Private Sub Form_Load()
   Debug.Print mciSendString("PLAY ""BlackZeroX""", 0&, 0, 0)  ' Reproducimos el recurso.
End Sub

Private Sub Form_Unload(Cancel As Integer)
   Debug.Print mciSendString("STOP ""BlackZeroX""", 0&, 0, 0)  ' No es necesario ya que el comando CLOSE lo "invoca"...
End Sub



Dulces Lunas!¡.
The Dark Shadow is my passion.