C語言實現(xiàn)音樂播放器的示例代碼
更新時間:2023年02月26日 10:30:47 作者:編程小魚六六六
這篇文章主要和大家分享了一個C語言的小DEMO,可以實現(xiàn)音樂播放器功能,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下
介紹
該程序是一個小的DEMO,實現(xiàn)了以下幾個功能,可以借鑒學(xué)習(xí)。
功能1:鼠標(biāo)選擇互動功能。通過鼠標(biāo)的移動和按下,按鈕的顏色也會發(fā)生改變。
功能2:音樂的播放與暫停。通過按鈕的操作,程序會做出相應(yīng)的響應(yīng)。如按下播放音樂1按鈕。程序就會加載對應(yīng)的音樂,其他按鈕也是同理。具體的含義以及使用,可以查看代碼。
實現(xiàn)代碼
// // 編譯該范例前,請把 music.mp3 放在項目文件夾中 // 把 music.mp3 和編譯的 exe 放在一起 // 編譯環(huán)境:VC6~VC2019 + EasyX_20210115 // #include <graphics.h> #include <conio.h> #include<string.h> // 引用 Windows Multimedia API #pragma comment(lib, "Winmm.lib") void ZT(); // 暫停 void BF1(); // 播放1 void BF2(); // 播放2 void BF3(); // 播放3 void menu(); // 總得 void locate(int a, int b, int c, int d, int e, LPCTSTR text); void locate(int a, int b, int c, int d, int e, LPCTSTR text, COLORREF color); int Return(); int main() { initgraph(640, 480); while (1) { int A=Return(); // 鼠標(biāo)選擇; switch (A) { case 0:ZT();break; case 1:BF1();break; case 2:BF2();break; case 3:BF3();break; } } closegraph(); return 0; } void ZT() // 暫停 { mciSendString(_T("stop mymusic"), NULL, 0, NULL); mciSendString(_T("close mymusic"), NULL, 0, NULL); } void BF1() // 播放1 { mciSendString(_T("open 1.mp3 alias mymusic"), NULL, 0, NULL); // 播放音樂 mciSendString(_T("play mymusic"), NULL, 0, NULL); } void BF2() // 播放2 { mciSendString(_T("open 2.mp3 alias mymusic"), NULL, 0, NULL); // 播放音樂 mciSendString(_T("play mymusic"), NULL, 0, NULL); } void BF3() // 播放3 { mciSendString(_T("open 1.mp3 alias mymusic"), NULL, 0, NULL); // 播放音樂 mciSendString(_T("play mymusic"), NULL, 0, NULL); } int Return() { menu(); MOUSEMSG m1; //BeginBatchDraw(); while (1) { m1 = GetMouseMsg(); switch (m1.uMsg) { case WM_MOUSEMOVE: menu(); if (m1.x >= 220 && m1.x <= 420 && m1.y >= 100 && m1.y <= 130) { menu(); locate(220, 100, 420, 130, 30, _T("暫停/結(jié)束"), RED); break; } if (m1.x >= 220 && m1.x <= 420 && m1.y >= 130 && m1.y <= 160) { menu(); locate(220, 130, 420, 160, 30, _T("播放音樂1"), RED); break; } if (m1.x >= 220 && m1.x <= 420 && m1.y >= 160 && m1.y <= 190) { menu(); locate(220, 160, 420, 190, 30, _T("播放音樂2"), RED); } if (m1.x >= 220 && m1.x <= 420 && m1.y >= 190 && m1.y <= 220) { menu(); locate(220, 190, 420, 220, 30, _T("播放音樂3"), RED); } } if (m1.x >= 220 && m1.x <= 420 && m1.y >= 100 && m1.y <= 130) { locate(220, 100, 420, 130, 30, _T("暫停/結(jié)束"), RED); if (m1.uMsg == WM_LBUTTONDOWN) { return 0; } } if (m1.x >= 220 && m1.x <= 420 && m1.y >= 130 && m1.y <= 160) { if (m1.uMsg == WM_LBUTTONDOWN) { return 1; // } } if (m1.x >= 220 && m1.x <= 420 && m1.y >= 160 && m1.y <= 190) { if (m1.uMsg == WM_LBUTTONDOWN) { return 2; } } if (m1.x >= 220 && m1.x <= 420 && m1.y >= 190 && m1.y <= 220) { if (m1.uMsg == WM_LBUTTONDOWN) { return 3; } } } } void locate(int a, int b, int c, int d, int e, LPCTSTR text, COLORREF color) { HCURSOR hcur = LoadCursor(NULL, IDC_CROSS); // 加載系統(tǒng)預(yù)置的鼠標(biāo)樣式 HWND hwnd = GetHWnd(); // 獲取繪圖窗口句柄 SetClassLongPtr(hwnd, GCLP_HCURSOR, (long)hcur); // 設(shè)置窗口類的鼠標(biāo)樣式 setlinecolor(color); roundrect(a, b, c, d, e, e); settextcolor(color); settextstyle(20, 0, _T("黑體")); setbkmode(TRANSPARENT); char arr[50] = "按鈕"; RECT r = { a, b, c, d }; drawtext(text, &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE); } void locate(int a, int b, int c, int d, int e, LPCTSTR text) { setlinecolor(WHITE); roundrect(a, b, c, d, e, e); settextcolor(YELLOW); settextstyle(20, 0, _T("黑體")); setbkmode(TRANSPARENT); char arr[50] = "按鈕"; RECT r = { a, b, c, d }; drawtext(text, &r, DT_CENTER | DT_VCENTER | DT_SINGLELINE); } void menu() { HCURSOR hcur = LoadCursor(NULL, IDC_ARROW); // 加載系統(tǒng)預(yù)置的鼠標(biāo)樣式 HWND hwnd = GetHWnd(); // 獲取繪圖窗口句柄 SetClassLongPtr(hwnd, GCLP_HCURSOR, (long)hcur); // 設(shè)置窗口類的鼠標(biāo)樣式 locate(220, 100, 420, 130, 30, _T("暫停/結(jié)束")); locate(220, 130, 420, 160, 30, _T("播放音樂1")); locate(220, 160, 420, 190, 30, _T("播放音樂2")); locate(220, 190, 420, 220, 30, _T("播放音樂3")); }
到此這篇關(guān)于C語言實現(xiàn)音樂播放器的示例代碼的文章就介紹到這了,更多相關(guān)C語言音樂播放器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳談C與C++的函數(shù)聲明中省略參數(shù)的不同意義
下面小編就為大家分享一篇詳談C與C++的函數(shù)聲明中省略參數(shù)的不同意義,具有非常好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-11-11