Cómo leer y escribir archivos de música en lenguaje C

Este programa es probablemente el reproductor de mp3 más sencillo que existe. Por supuesto, no hay ninguna función de la que hablar. Pero sí juega.

Los archivos de la biblioteca deben especificarse al vincular. VC++ es vfw32.lib, GCC es libvfw32.a.

Lo pasé bajo VC6.0 y GCC/MinGW 3.3.1.

Supongamos que el nombre del programa es MyPlay y hay aaa.mp3 en el directorio, simplemente ejecute MyPlay aaa.mp3.

Tenga en cuenta que Sleep(50000) le permite jugar hasta 50 segundos. Sin Sleep(), la ventana se cerrará tan pronto como parpadee.

Consulte la información relevante para funciones MCI específicas.

#include

#include

int main(int argc, char* argv[])

{

if (argc>1) {

HWND MyPlayer = MCIWndCreate(NULL,GetModuleHandle(NULL), 0, argv[1]);

MCIWndPlay(MyPlayer);

Dormir(50000);

}

devuelve 0;

}

Este programa también puede reproducir MIDI, AVI, WMV, MPG y otros archivos de audio y vídeo.

Si solo reproduces MIDI o MP3 en segundo plano y no quieres mostrar la ventana inútil, simplemente cambia el tercer parámetro 0 de MCIWndCreate() a WS_POPUP.

Si desea controlar con precisión Sleep() hasta el final de la reproducción de MP3, puede cambiarlo a Sleep(MCIWndGetLength(MyPlayer));

Para mp3, la unidad del El valor de retorno de MCIWndGetLength() es milisegundos. Se puede utilizar directamente para el retraso de Sleep().

Para mpg, la unidad del valor de retorno de MCIWndGetLength() es el número de fotogramas, que deben convertirse a milisegundos antes de poder usarse en Sleep().

¿Qué Cuál es la unidad específica del valor de retorno de MCIWndGetLength()? Puede llamar a MCIWndGetTimeFormat() para realizar la consulta.

>Es C, no C++, y mucho menos Vc++.

No entendiste bien. VC6.0 no solo es compatible con C++, sino que también es compatible con C. GCC es un compilador de C, no un compilador de C++.

Este programa es un programa C auténtico, sin ningún elemento C++. Pero llama a la función API de Windows, por lo que debe utilizar un compilador C de 32 bits que admita la programación de Windows, no necesariamente VC o GCC.

Muchas personas creen que es mejor usar la línea de comando de GCC o VC cuando recién se aprende lenguaje C. Desafortunadamente, la mayoría de los entornos de enseñanza de C todavía usan TC que se desarrolló hace más de 20 años. Si insiste en usar TC de 16 bits, puede hacer algunas cosas, pero ahora no puede hacer la mayoría de las cosas.