您当前所在位置:首页软件教程软件编程C语言实现音乐播放器的示例代码详解

C语言实现音乐播放器的示例代码详解

归类:软件编程更新时间:2024-02-10 00:03:15作者:互联网人气:270

       本文主要和大家分享一个C语言的小DEMO,其主要功能可以实现音乐播放器,文中的示例代码讲解非常详细,具有一定的学习借鉴价值,需要的朋友可以参考一下:

该程序是一个小的DEMO,实现了以下几个功能,可以借鉴学习。

功能1:鼠标选择互动功能。通过鼠标的移动和按下,按钮的颜色也会发生改变。

功能2:音乐的播放与暂停。通过按钮的操作,程序会做出相应的响应。如按下播放音乐1按钮。程序就会加载对应的音乐,其他按钮也是同理。具体的含义以及使用,可以查看代码。

实现代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
//
// 编译该范例前,请把 music.mp3 放在项目文件夹中
// 把 music.mp3 和编译的 exe 放在一起
// 编译环境: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);      // 加载系统预置的鼠标样式
  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);      // 加载系统预置的鼠标样式
  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"));
}
本文地址:http://9zoku.com/ruanjianbc/721.html
版权声明:本文内容来自互联网,该文版权归原作者所有。本站仅提供信息存储空间服务,不拥有文章所有权,不承担相关法律责任。若对本内容有异议或投诉请与管理员联系 5604882#qq.com(请将#换成@)。