mciSendString

Iniciado por samirllorente, 21 Octubre 2013, 07:32 AM

0 Miembros y 5 Visitantes están viendo este tema.

samirllorente

Tengo un problema, estoy creando un reproductor pero la cuestion es q estoy utilisando mciSendString() para reproducir las canciones, y lo q pasa es q con algunuas canciones suena y con otra no :s nose q pasa, por ejemplo, tengo
mciSendString("play G:/loqsea.mp3 from 0,NULL,0,0);
asi me suena la cancion, pero si cojo otra cancion y le pongo el mismo nombre y obio tienen el mismo formato y en la pongo en la misma ubicacion y no suena, y asi pasa con algunas canciones :s
ahora yo se q la ruta de la cancion no debe tener espacios :D asi q por eso no hay problema, espero q me digan q pasa, o q me den una solucio para reproducir mis cancion y seguir con mi proyecto :(
SamirLlorente

eferion

entiendo que si no es capaz, por la razón que sea, de reproducir la canción, recibirás un mensaje de error.

Deberías plantearte recoger ese mensaje de error. Seguramente te ayude a dar con el problema.

Eternal Idol

¿Compila eso? ¿Donde estan cerradas las comillas? ¿Probaste con el path correcto? G:\\loqsea.mp3
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

samirllorente

#3
Cita de: Eternal Idol en 21 Octubre 2013, 10:02 AM
¿Compila eso? ¿Donde estan cerradas las comillas? ¿Probaste con el path correcto? G:\\loqsea.mp3
Claroo q complilaa

#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
   
    mciSendString ("play G:/loqsea.mp3 from 0",NULL,0,0);
    system("pause");
   return 0;
}

esee el pequeño codigoo, y leaa de nuevoo lo primero :D




Cita de: eferion en 21 Octubre 2013, 09:28 AM
entiendo que si no es capaz, por la razón que sea, de reproducir la canción, recibirás un mensaje de error.

Deberías plantearte recoger ese mensaje de error. Seguramente te ayude a dar con el problema.

No me sale ningun msj de error ni nada, solo en el momento en q se ejecuta no sale ningun sonido :(
SamirLlorente

Eternal Idol

Cita de: samirllorente en 21 Octubre 2013, 16:03 PM
Claroo q complilaa

#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
   
     mciSendString ("play G:/loqsea.mp3 from 0",NULL,0,0);
     system("pause");
    return 0;
}

esee el pequeño codigoo, y leaa de nuevoo lo primero :D

Esto que pusiste ahora si compila, lo que pusiste en tu primer mensaje no.

Return value
Returns zero if successful or an error otherwise. The low-order word of the returned DWORD value contains the error return value. If the error is device-specific, the high-order word of the return value is the driver identifier; otherwise, the high-order word is zero. For a list of possible error values, see MCIERR Return Values.

To retrieve a text description of return values, pass the return value to the mciGetErrorString function.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

samirllorente

Cita de: Eternal Idol en 21 Octubre 2013, 16:09 PM
Esto que pusiste ahora si compila, lo que pusiste en tu primer mensaje no.

Return value
Returns zero if successful or an error otherwise. The low-order word of the returned DWORD value contains the error return value. If the error is device-specific, the high-order word of the return value is the driver identifier; otherwise, the high-order word is zero. For a list of possible error values, see MCIERR Return Values.

To retrieve a text description of return values, pass the return value to the mciGetErrorString function.

Total aun me sigue sin reproducir la cancion :(
SamirLlorente

Eternal Idol

Cita de: samirllorente en 21 Octubre 2013, 17:29 PM
Total aun me sigue sin reproducir la cancion :(

No es nuestro problema sino el tuyo, ya te lo dije en mi primer mensaje DEPURA tu programa. En el segundo te puse como obtener el error, adelante, no escribas hasta que al menos sepas cual es el error.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

eferion

Cita de: samirllorente en 21 Octubre 2013, 16:03 PM
No me sale ningun msj de error ni nada, solo en el momento en q se ejecuta no sale ningun sonido :(

Con el código que has puesto es imposible que te enteres si se produce algún error.

La función mciSendString devuelve un identificador... es ESE identificador el que debes comprobar para saber si se está produciendo algún problema. En tu código estás desechando directamente ese valor.

Las llamadas a la API de windows no van a retornar mensajes por la consola... es responsabilidad del programador que hace uso de esas funciones el verificar que no se producen errores.

samirllorente

Cita de: eferion en 21 Octubre 2013, 22:23 PM
Con el código que has puesto es imposible que te enteres si se produce algún error.

La función mciSendString devuelve un identificador... es ESE identificador el que debes comprobar para saber si se está produciendo algún problema. En tu código estás desechando directamente ese valor.

Las llamadas a la API de windows no van a retornar mensajes por la consola... es responsabilidad del programador que hace uso de esas funciones el verificar que no se producen errores.

Como le hago pues :/
SamirLlorente

Eternal Idol

Lee la referencia de la API en la MSDN primero:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd757161%28v=vs.85%29.aspx

Si el valor de retorno es diferente de 0 quiere decir que hubo un error (seria una buena idea que le asignaras el valor a una variable cosa que ahora no haces), entonces llama a mciGetErrorString para que te de una cadena descriptiva del mismo.

Tambien podes ver cual es el error por su valor:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd757153%28v=vs.85%29.aspx
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón