1. ML

    Mensajes [1] - Enviado el Viernes 25 de Julio de 2008 a las 06:24hs

    Hola a todos. La funci?n mciSendString de la API MCI no devuelve el tiempo real del archivo MP3.
    S?lo sucede con el 5% de los MP3 que he probado y no s? porqu?.
    Sin embargo con el mismo MP3 en un reproductor como WinApm, si muestran el tiempo correcto.

    SO: Win XP
    CODIGO:

    // Declaraci?n al principio de la clase
    [DllImport("winmm.dll")]
    private static extern int mciSendString(string lpstrCommand,
    StringBuilder lpstrReturnString, int uReturnLengh, int hwndCallback);


    ///


    /// Calcula el tama?o del archivo abierto para reproduccion.
    ///

    /// Determina si devuelve el tama?o en milesimas o segundos
    public long CalcularTamanyo(bool milisegundos)
    {
    // El archivo ya est? abierto con formato type MPEGVIDEO.
    int MAX_PATH = 260;
    StringBuilder sbBuffer = new StringBuilder(MAX_PATH);
    mciSendString("set ArchivoMp3 time format milliseconds", null, 0, 0);
    // Obtenemos el largo del archivo, en millisegundos.
    mciSendString("status ArchivoMp3 length", sbBuffer, MAX_PATH, 0);

    // Si el buffer contiene informaci?n...
    if (sbBuffer.ToString() != "")
    {
    if (milisegundos)
    {
    return long.Parse(sbBuffer.ToString());
    }
    else
    {
    // la devolvemos, formateando la salida a entero largo;
    return long.Parse(sbBuffer.ToString()) / 1000;
    }
    }
    else // si no, devolvemos cero.
    {
    return 0L;
    }
    }


responder

Para poder responder a este tema tenes que ingresar. Si no tenes una cuenta podes registrarse gratis..

publicidad

API DE FACEBOOK
GOOGLE CALENDAR API
GOOGLE MAPS API