Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Demereth en 29 Marzo 2013, 02:35 am



Título: problema al reproducir sonido
Publicado por: Demereth en 29 Marzo 2013, 02:35 am
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.


Título: Re: problema al reproducir sonido
Publicado por: ignorantev1.1 en 29 Marzo 2013, 23:08 pm
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!


Título: Re: problema al reproducir sonido
Publicado por: Elemental Code en 30 Marzo 2013, 02:38 am
o usa una variable de las ENVIRON() :)


Título: Re: problema al reproducir sonido
Publicado por: BlackZeroX en 31 Marzo 2013, 07:35 am
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
  1.  
  2. 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
  3.  
  4. Private Sub Form_Load()
  5. songPath = "D:\Miguel\Mi musica\(G) Mi disco\Z145 TODA LA NOCHE (barrio pobre).mp3"
  6. Debug.Print mciSendString("OPEN """ & songPath & """ alias ""BlackZeroX""", 0&, 0, 0)
  7. Debug.Print mciSendString("PLAY ""BlackZeroX""", 0&, 0, 0)
  8. Debug.Print mciSendString("STOP ""BlackZeroX""", 0&, 0, 0)
  9. Debug.Print mciSendString("CLOSE ""BlackZeroX""", 0&, 0, 0)
  10. End Sub
  11.  
  12.  

un poco mas de los comandos...

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

Dulces Lunas!¡.


Título: Re: problema al reproducir sonido
Publicado por: BlackZeroX en 31 Marzo 2013, 08:03 am
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
  1.  
  2. Option Explicit
  3.  
  4. 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
  5. Const songPath As String = "D:\Miguel\Mi musica\(G) Mi disco\Z145 TODA LA NOCHE (barrio pobre).mp3"
  6.  
  7. Private Sub Form_Initialize()
  8.    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.
  9.    Debug.Print mciSendString("OPEN """ & songPath & """ alias ""BlackZeroX""", 0&, 0, 0)
  10. End Sub
  11.  
  12. Private Sub Form_Terminate()
  13.    Debug.Print mciSendString("CLOSE ""BlackZeroX""", 0&, 0, 0) ' Liberamos el recurso...
  14. End Sub
  15.  
  16. Private Sub Form_Load()
  17.    Debug.Print mciSendString("PLAY ""BlackZeroX""", 0&, 0, 0)  ' Reproducimos el recurso.
  18. End Sub
  19.  
  20. Private Sub Form_Unload(Cancel As Integer)
  21.    Debug.Print mciSendString("STOP ""BlackZeroX""", 0&, 0, 0)  ' No es necesario ya que el comando CLOSE lo "invoca"...
  22. End Sub
  23.  
  24.  

Dulces Lunas!¡.