发布网友 发布时间:2022-04-22 05:23
共1个回答
热心网友 时间:2023-09-28 21:08
这个程序可能是最简单的mp3播放器了。当然也谈不上什么功能。但是确实能播放。
链接时要指定库文件。VC++是vfw32.lib,
GCC是libvfw32.a.
我在VC6.0和GCC/MinGW
3.3.1下都通过了。
假设程序名是MyPlay,
目录下还有一个aaa.mp3,
运行MyPlay
aaa.mp3即可。
注意Sleep(50000)是让他最多播放50秒。没有Sleep()的话,窗口一闪就退出了。
具体的MCI函数请查有关资料。
#include
#include
int
main(int
argc,
char*
argv[])
{
if
(argc>1)
{
HWND
MyPlayer
=
MCIWndCreate(NULL,GetMoleHandle(NULL),
0,
argv[1]);
MCIWndPlay(MyPlayer);
Sleep(50000);
}
return
0;
}
这个程序还可以播放MIDI,
AVI,
WMV,
MPG等影音文件。
如果只是后台播放MIDI或MP3,不想显示那个没有用的窗口,把MCIWndCreate()第三个参数0改成WS_POPUP即可。
如果想精确控制Sleep()至MP3播放结束,可以改成
Sleep(MCIWndGetLength(MyPlayer));
对于mp3,
MCIWndGetLength()返回值的单位是毫秒,可以直接用于Sleep()延时。
对于mpg,
MCIWndGetLength()返回值的单位是帧数,还要转换成毫秒才能用于Sleep().
具体MCIWndGetLength()返回值的单位是什么,可以调用MCIWndGetTimeFormat()来查询。
>是C,不是C++
更不是Vc++
你误解了。VC6.0不只是支持C++,
也支持C.
GCC更是C编译器,不是C++编译器。
这个程序是地地道道的C程序,没有一丁点儿
C++
的成分。但是他调用了Windows
API函数,所以必须用支持Windows编程的32位C编译器,不一定用VC或GCC。
很多人认为,刚学C语言最好用GCC或VC的命令行方式,但遗憾的大多教学用的C环境仍然选用20多年前的TC。如果坚持用16位的TC可以做一些事情,但在现在绝大多数事情是他做不到的