如何用C++编写一个简单的音乐播放器 45
江湖救急:各位高手,我等着答案,急!!!!!!!!要求:1.能实现利用PC喇叭播放在电脑中保存好的歌曲文件。说明:1.利用PC喇叭发音可使用“DOS.H”中的SOUND(...
江湖救急:各位高手,我 等着答案,急!!!!!!!!
要求:
1.能实现利用PC喇叭播放在电脑中保存好的歌曲文件。
说明:
1.利用PC喇叭发音可使用“DOS.H”中的SOUND()函数。
2.歌曲文件可以自己定义歌谱的表示形式,如用1表示“Do”。 展开
要求:
1.能实现利用PC喇叭播放在电脑中保存好的歌曲文件。
说明:
1.利用PC喇叭发音可使用“DOS.H”中的SOUND()函数。
2.歌曲文件可以自己定义歌谱的表示形式,如用1表示“Do”。 展开
2个回答
展开全部
这个程序可能是最简单的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 <windows.h>
#include <vfw.h>
int main(int argc, char* argv[])
{
if (argc>1) {
HWND MyPlayer = MCIWndCreate(NULL,GetModuleHandle(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()来查询。
链接时要指定库文件。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 <windows.h>
#include <vfw.h>
int main(int argc, char* argv[])
{
if (argc>1) {
HWND MyPlayer = MCIWndCreate(NULL,GetModuleHandle(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()来查询。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询