Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: samirllorente en 21 Octubre 2013, 07:32 am



Título: mciSendString
Publicado por: samirllorente en 21 Octubre 2013, 07:32 am
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 :(


Título: Re: mciSendString
Publicado por: 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.


Título: Re: mciSendString
Publicado por: Eternal Idol en 21 Octubre 2013, 10:02 am
¿Compila eso? ¿Donde estan cerradas las comillas? ¿Probaste con el path correcto? G:\\loqsea.mp3


Título: Re: mciSendString
Publicado por: samirllorente en 21 Octubre 2013, 16:03 pm
¿Compila eso? ¿Donde estan cerradas las comillas? ¿Probaste con el path correcto? G:\\loqsea.mp3
Claroo q complilaa

Código:
#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



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 :(


Título: Re: mciSendString
Publicado por: Eternal Idol en 21 Octubre 2013, 16:09 pm
Claroo q complilaa

Código:
#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.


Título: Re: mciSendString
Publicado por: samirllorente en 21 Octubre 2013, 17:29 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 :(


Título: Re: mciSendString
Publicado por: Eternal Idol en 21 Octubre 2013, 18:04 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.


Título: Re: mciSendString
Publicado por: eferion en 21 Octubre 2013, 22:23 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.


Título: Re: mciSendString
Publicado por: samirllorente en 22 Octubre 2013, 16:18 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 :/


Título: Re: mciSendString
Publicado por: Eternal Idol en 22 Octubre 2013, 17:45 pm
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