永发信息网

MP3播放器用C++怎么写?

答案:2  悬赏:60  手机版
解决时间 2021-04-26 20:04
MP3播放器用C++怎么写?
最佳答案

#include<fstream.h>
    #include<iostream.h>
    #include<windows.h>
    #include<mmsystem.h>
    #pragma comment(lib,"winmm.lib")


    void print()
    {
    cout<<"\n\t\t\t>>>>*简单音乐播放器*<<<<";
   
    cout<<"    1.输入L(List)查看播放列表"<<endl;
    cout<<"    2.输入?查看帮助信息"<<endl;
    cout<<"    3.输入P(Play)加歌曲代号播放歌曲"<<endl;
    cout<<"    4.输入S(Stop)停止播放当前歌曲"<<endl;
    cout<<"    5.输入A(Pause)暂停播放当前歌曲"<<endl;
    cout<<"    6.输入N(Next)播放下一首歌曲"<<endl;
    cout<<"    7.输入R(Pre)播放上一首歌曲"<<endl;
    cout<<"    8.输入E(Exit)退出程序"<<endl;
    cout<<"********************************************************************************"<<endl;
    Sleep(1000);
    }
    int main()
    {
    system("color   0a");
    system("title 音乐播放器");
    char command,b;
    char filename[81];
    char listname[81];
    char number;
    int i=1,j=1,Num;
    print();
    loop:
    cout<<"请输入命令:\n\n>> ";
    cin.get(command);
    cout<<endl;
    system("cls");
    ifstream infile;


    switch (command)
    {
    case '?':
    system("cls");
    cout<<"********************************************************************************";
    cout<<"帮助说明:1.输入L(List)查看播放列表"<<endl;
    cout<<"    2.输入?查看帮助信息"<<endl;
    cout<<"    3.输入P(Play)加歌曲代号播放歌曲"<<endl;
    cout<<"    4.输入S(Stop)停止播放当前歌曲"<<endl;
    cout<<"    5.输入P(Pause)暂停播放当前歌曲"<<endl;
    cout<<"    6.输入N(Next)播放下一首歌曲"<<endl;
    cout<<"    7.输入P(Pre)播放上一首歌曲"<<endl;
    cout<<"    8.输入E(Exit)退出程序"<<endl;
    cout<<"********************************************************************************";
    cin.ignore (1);
    Sleep(1000);
    goto loop;
    case 'E':
    Sleep(1000);
    cout<<"你确定要退出吗?(Y\\N):\n\n>> ";
    cin.ignore (1);
    cin.get(command);
    cout<<endl;
    if(command=='Y'||command=='y')
    {
    cout<<"\t\t\t>>>>谢谢使用! 再见>>>>"<<endl;
    Sleep(3000);
    return 1;
    }
    else
    system("cls");
    cin.ignore (1);
    goto loop;
    case 'P':
    cout<<"输入文件名需要播放的歌曲文件名:\n\n>> ";
    cin.ignore (1);
    cin.getline (filename,80);
    cout<<endl;
    MCI_OPEN_PARMS OpenParms;//打开设备
    OpenParms.lpstrDeviceType = "mpegvideo";
    OpenParms.lpstrElementName =filename;
    OpenParms.wDeviceID = NULL;
    mciSendCommand (NULL, MCI_OPEN,MCI_OPEN_ELEMENT, (DWORD)&OpenParms);
    MCI_PLAY_PARMS PlayParms;//播放文件
    PlayParms.dwFrom = 0;
    mciSendCommand (OpenParms.wDeviceID, MCI_PLAY, MCI_FROM, (DWORD)&PlayParms);
    cout<<"正在播放....."<<endl;
    halt: cout<<endl<<"控制命令(播放-P,停止-S,返回-E):\n\n>> ";


cin.get (b);
    switch (b)
    {
    case 'S':
    mciSendCommand (OpenParms.wDeviceID, MCI_STOP, NULL, NULL);
    Sleep(1000);
    cout<<endl<<"已经停止播放....."<<endl;
    cin.ignore (1);
    goto halt;
    case 'P':
    MCI_PLAY_PARMS PlayParms;//播放文件
    PlayParms.dwFrom = 0;
    mciSendCommand (OpenParms.wDeviceID, MCI_PLAY, MCI_FROM, (DWORD)&PlayParms);
    Sleep(1000);
    cout<<endl<<"正在播放....."<<endl;
    cin.ignore (1);
    goto halt;
    case 'E':
    mciSendCommand (OpenParms.wDeviceID, MCI_STOP, NULL, NULL);
    system("cls");
    print();
    cin.ignore (1);
    goto loop;
    default:
    Sleep(1000);
    cout<<"没有这个命令......"<<endl;
    goto halt;
    }
    case 'L':
    char str[81];
    cout<<"你要打开的播放列表是(M3U):\n\n>> ";
    cin.ignore (1);
    cin.getline(listname,80);
    infile.open (listname);
    if(!infile)
    {
    Sleep(1000);
    cout<<"文件读取错误!\a"<<endl<<endl;
    goto loop;
    }
    else
    cout<<"********************************************************************************";
    cout<<"歌曲列表如下:"<<endl<<endl;
    Sleep(1000);


    while(!infile.eof ())
    {
    infile.getline (str,80);
    if(str[0]=='#')//去掉前面含有#的行(m3u播放列表的固有格式)
    {
    }
    else
    {
    cout<<"    "<<i<<"."<<str<<endl;
    i++;
    }


    }
    i=1;//将i置1,这样下次打开列表时,i还是从1开始
    infile.close ();
    cout<<"********************************************************************************";Sleep(1000);
    cout<<endl<<"要播放列表吗(Y\\N)?\n\n>> ";
    cin.get (number);
    cout<<endl;
    if(number=='Y'||number=='y')
    {   cin.ignore (1);
    cout<<"是否打开自动播放功能(Y\\N)?\n\n>> ";
    cin.get(number);
    cout<<endl;
    cout<<"你想播放第几首歌曲?\n\n>> ";
    cin.ignore (1);
    cin>>Num;
    infile.open (listname);//打开播放列表
    j=1;
    infile.getline (str,80);//去掉前面两行
    infile.getline (str,80);
    while(j<=(2*Num-3))
    {
    infile.getline (str,80);
    j++;
    }
    Sleep(1000);
    if(number=='Y'||number=='y')//自动播放下一首
    {
    while(!infile.eof())
    {
    j++;
    infile.getline(str,80);
    if(str[0]!='#')
    {
    Sleep(1000);
    cout<<endl<<"正在播放列表第"<<(j+1)/2<<"首歌曲....."<<endl;
    MCI_OPEN_PARMS OpenParms;//打开设备
    OpenParms.lpstrDeviceType = "mpegvideo";
    OpenParms.lpstrElementName =str;
    OpenParms.wDeviceID = NULL;
    mciSendCommand (NULL, MCI_OPEN,MCI_OPEN_ELEMENT, (DWORD)&OpenParms);
    MCI_PLAY_PARMS PlayParms;//播放文件
    PlayParms.dwFrom = 0;
    mciSendCommand (OpenParms.wDeviceID, MCI_PLAY,MCI_WAIT, (DWORD)&PlayParms);
    }
    }
    infile.close ();
    }


else//不自动播放
    {
    play1:  infile.close ();
    infile.open (listname);
    infile.getline (str,80);//去掉前面两行
    infile.getline (str,80);
    cout<<endl<<"你想要播放的是?\n\n>> ";
    cin.ignore(1);
    cin>>Num;
    for(j=1;j<=(2*Num-1);j++)
    {
    infile.getline (str,80);
    }
    Sleep(1000);
    cout<<endl<<"正在播放列表第"<<(j+1)/2<<"首歌曲....."<<endl;
    MCI_OPEN_PARMS OpenParms;//打开设备
    OpenParms.lpstrDeviceType = "mpegvideo";
    OpenParms.lpstrElementName =str;
    OpenParms.wDeviceID = NULL;
    mciSendCommand (NULL, MCI_OPEN,MCI_OPEN_ELEMENT, (DWORD)&OpenParms);
    MCI_PLAY_PARMS PlayParms;//播放文件
    PlayParms.dwFrom = 0;
    mciSendCommand (OpenParms.wDeviceID, MCI_PLAY, MCI_FROM, (DWORD)&PlayParms);
    handle: cout<<endl<<"控制命令(播放-P,停止-S,返回-E,下一首-N):\n\n>> ";
    cin.ignore (1);
    cin.get (b);
    switch (b)
    {
    case 'S':
    mciSendCommand (OpenParms.wDeviceID, MCI_STOP, NULL, NULL);
    Sleep(1000);
    cout<<endl<<"已经停止播放....."<<endl;


    goto handle;
    case 'P':
    MCI_PLAY_PARMS PlayParms;//播放文件
    PlayParms.dwFrom = 0;
    mciSendCommand (OpenParms.wDeviceID, MCI_PLAY, MCI_FROM, (DWORD)&PlayParms);
    Sleep(1000);
    cout<<endl<<"正在播放....."<<endl;


    goto handle;
    case 'E':
    mciSendCommand (OpenParms.wDeviceID, MCI_STOP, NULL, NULL);
    system("cls");
    print();


    goto loop;
    case 'N':
    mciSendCommand (OpenParms.wDeviceID, MCI_STOP, NULL, NULL);
    goto play1;
    default:
    Sleep(1000);
    cout<<"没有这个命令......"<<endl;


    goto handle;
    }


    }
    }
    else
    cin.ignore (1);
    goto loop;


    case 'R':


    cout<<endl<<"这个命令只有在播放列表时才可以用!"<<endl<<endl;
    Sleep(1000);
    cin.ignore (1);
    goto loop;
    case 'A':
    system("pause");
    cin.ignore (1);
    goto loop;
    case 'S':


    system("pause");
    cin.ignore (1);
    goto loop;
    case 'N':


    cout<<endl<<"这个命令只有在播放列表时才可以用!"<<endl<<endl;
    Sleep(1000);
    cin.ignore (1);
    goto loop;
    default:
    cout<<endl<<":-( 输入错误,请查看帮助重新输入!"<<endl<<endl;
    cin.ignore (1);
    Sleep(1000);
    goto loop;


    }


    return 0;
    }

全部回答
mp3   ...\acinclude.m4   ...\aclocal.m4   ...\AUTHORS   ...\base   ...\....\beos   ...\....\....\include   ...\....\....\.......\beosprefs.h   ...\....\....\.......\beosthread.h   ...\....\....\.......\beos_priority.h   ...\....\....\.......\help.h   ...\....\....\.......\mutex.h   ...\....\....\.......\semaphore.h   ...\....\....\.......\utility.h   ...\....\....\.......\win32impl.h   ...\....\....\prj   ...\....\....\...\FreeAmpBaseLib_cvs.proj   ...\....\....\...\FreeAmp_cvs.proj   ...\....\....\...\MoveAddonsToTheirHome.post   ...\....\....\src   ...\....\....\...\beosprefs.cpp   ...\....\....\...\beosthread.cpp   ...\....\....\...\bootstrap.cpp   ...\....\....\...\debug.cpp   ...\....\....\...\mutex.cpp   ...\....\....\...\semaphore.cpp   ...\....\....\...\utility.cpp   ...\....\....\...\volume.cpp   ...\....\....\...\win32impl.cpp   ...\....\configure   ...\....\COPYING   ...\....\include   ...\....\.......\database.h   ...\....\.......\debug.h   ...\....\.......\downloadformat.h   ...\....\.......\downloadmanager.h   ...\....\.......\errors.h   ...\....\.......\event.h   ...\....\.......\eventdata.h   ...\....\.......\facontext.h   ...\....\.......\hashtable.h   ...\....\.......\log.h   ...\....\.......\metadata.h   ...\....\.......\musiccatalog.h   ...\....\.......\player.h   ...\....\.......\playlist.h   ...\....\.......\playlistformat.h   ...\....\.......\plmevent.h   ...\....\.......\portabledevice.h   ...\....\.......\preferences.h   ...\....\.......\prefixprefs.h   ...\....\.......\properties.h   ...\....\.......\propimpl.h   ...\....\.......\queue.h   ...\....\.......\registrar.h   ...\....\.......\registry.h   ...\....\.......\thread.h   ...\....\.......\undomanager.h   ...\....\.......\updatemanager.h   ...\....\.......\utility.h   ...\....\INSTALL   ...\....\install-freeamp   ...\....\mac   ...\....\...\prj   ...\....\...\...\freeamp.prj   ...\....\...\res   ...\....\...\...\FreeAmp.ppob   ...\....\...\...\FreeAmp.rsrc   ...\....\...\src   ...\....\...\...\CFreeAmp.cpp   ...\....\...\...\CFreeAmp.h   ...\....\NEWS   ...\....\README   ...\....\src   ...\....\...\database.cpp   ...\....\...\debug.cpp   ...\....\...\downloadmanager.cpp   ...\....\...\errors.cpp   ...\....\...\log.cpp   ...\....\...\musiccatalog.cpp   ...\....\...\player.cpp   ...\....\...\playlist.cpp   ...\....\...\preferences.cpp   ...\....\...\prefixprefs.cpp   ...\....\...\propimpl.cpp   ...\....\...\registrar.cpp   ...\....\...\registry.cpp   ...\....\...\thread.cpp   ...\....\...\undomanager.cpp   ...\....\...\updatemanager.cpp   ...\....\...\utility.cpp   ...\....\unix   ...\....\....\include   ...\....\....\.......\help.h   ...\....\....\.......\unixprefs.h   ...\....\....\.......\win32impl.h   ...\....\....\linux   ...\....\....\.....\include   ...\....\....\.....\.......\linuxthread.h   ...\....\....\.....\.......\mutex.h
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
下载的系统可以用吗? 下到电脑后怎么装系统
谁能介绍我几个java好玩的游戏
qq华夏怎么利用战魂引魂啊?
霸气的朋友生日祝福语,晚到的生日祝福语短句
谁肯给个铁通宽带账号和密码
高一力学物理题2道
CF几级点亮?
大众三轮车农机配件修理部怎么去啊,有知道地
金庸小说里能隔空吸物的功夫叫什么
如何办得港澳台的签证??
健尔马足疗机大概多少钱啊?效果怎么样?
friend,lover,believe这三个单词背后的含义
哀悼怎么样子
为什么手机上原有的手机能玩,而下载的游戏却
求5610TXT转化为JAR的软件
推荐资讯
武林外传魔界飞行坐骑价格
QQ英雄岛的幻影手套镶嵌什么宝石
加速 用日语怎么说 要音译
学建筑工程怎么样啊?
成都做无痛人流医院
电子词典哪款比较好?
在26个英文中誰最喜欢扮型
趣味哲学题:如果这是问题,就回答。问:该如
这个屏幕上的黑条是怎么回事儿?
穿越火线V0.7.6-V0.7.7升级补丁
LG Gs500v手机软件
花为什么开,开了又谢呢、
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?