溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用C語言實現(xiàn)音樂播放器

發(fā)布時間:2023-02-27 10:25:23 來源:億速云 閱讀:136 作者:iii 欄目:開發(fā)技術

本文小編為大家詳細介紹“怎么使用C語言實現(xiàn)音樂播放器”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“怎么使用C語言實現(xiàn)音樂播放器”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

介紹

該程序是一個小的DEMO,實現(xiàn)了以下幾個功能,可以借鑒學習。

功能1:鼠標選擇互動功能。通過鼠標的移動和按下,按鈕的顏色也會發(fā)生改變。

功能2:音樂的播放與暫停。通過按鈕的操作,程序會做出相應的響應。如按下播放音樂1按鈕。程序就會加載對應的音樂,其他按鈕也是同理。具體的含義以及使用,可以查看代碼。

怎么使用C語言實現(xiàn)音樂播放器

實現(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();    // 鼠標選擇;
    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("暫停/結束"), 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("暫停/結束"), 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)預置的鼠標樣式
  HWND hwnd = GetHWnd();                // 獲取繪圖窗口句柄
  SetClassLongPtr(hwnd, GCLP_HCURSOR, (long)hcur);  // 設置窗口類的鼠標樣式
  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)預置的鼠標樣式
  HWND hwnd = GetHWnd();                // 獲取繪圖窗口句柄
  SetClassLongPtr(hwnd, GCLP_HCURSOR, (long)hcur);  // 設置窗口類的鼠標樣式
  locate(220, 100, 420, 130, 30, _T("暫停/結束"));
  locate(220, 130, 420, 160, 30, _T("播放音樂1"));
  locate(220, 160, 420, 190, 30, _T("播放音樂2"));
  locate(220, 190, 420, 220, 30, _T("播放音樂3"));
}

讀到這里,這篇“怎么使用C語言實現(xiàn)音樂播放器”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內(nèi)容的文章,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI