导航:首页 > 音乐推荐 > 用c编写音乐播放器

用c编写音乐播放器

发布时间:2021-02-11 05:33:58

『壹』 用c语言编写音乐播放器

我想楼主实际上是想编写一个我们平常所看到的app,应用软件之类的程序专。最开始学编属程,我想每个人都有这样的疑问,为什么我写的只是,一个黑框框。实际上,一般情况下,一般情况下,没有人用C语言编写那种图形化界面的软件。因为实在是开发效率太低了,也就是要写的代码太多了,也没有多大意义。C语言是面向过程的语言。所以一般只是用于编写底层之类的程序。而我们实际应用于编写那种图形化界面的软件,一般用的都是使用的面向对象的语言,就是Java,c#,这之类的语言。如果楼主,是想要快速能够写那种软件的话,楼主应该学C#,学c一般都只是为了入门,一般除了特殊的领域之外,基本上都是用的C#这之类的面向对象语言。

『贰』 用C语言编写音乐播放器的代码

vc6.0下编译可以的

#include <windows.h>
#include <mmsystem.h>

#pragma comment (lib, "winmm.lib")

#define ID_PLAY 1000
#define ID_STOP 1001
#define ID_EXIT 1002

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
TCHAR clsName[] = TEXT ("clsMusicPlayer");
TCHAR title[] = TEXT ("Music Player");
WNDCLASS wc;
HWND hWnd;
MSG msg;
int cxScreen;
int cyScreen;
int winX;
int winY;
int winWidth;
int winHeight;

wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = (HBRUSH) GetStockObject (BLACK_BRUSH);
wc.hCursor = LoadCursor (hInstance, IDC_ARROW);
wc.hIcon = LoadIcon (hInstance, IDI_APPLICATION);
wc.hInstance = hInstance;
wc.lpfnWndProc = WndProc;
wc.lpszClassName = clsName;
wc.lpszMenuName = NULL;
wc.style = CS_HREDRAW | CS_VREDRAW;

if ( !RegisterClass (&wc) )
{
MessageBox (NULL, TEXT ("RegisterClass Error"), TEXT ("ERROR"), MB_OK | MB_ICONINFORMATION);
return -1;
}

cxScreen = GetSystemMetrics (SM_CXSCREEN);
cyScreen = GetSystemMetrics (SM_CYSCREEN);

winWidth = cxScreen / 4;
winHeight = cyScreen / 3;
winX = (cxScreen - winWidth) / 2;
winY = (cyScreen - winHeight) / 2;

hWnd = CreateWindow (
clsName, title,
WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX,
winX, winY, winWidth, 100,
NULL, NULL, hInstance, NULL);

if ( !hWnd )
{
MessageBox (NULL, TEXT ("CreateWindow Error"), TEXT ("ERROR"), MB_OK | MB_ICONINFORMATION);
return -2;
}

ShowWindow (hWnd, SW_SHOW);
UpdateWindow (hWnd);

while ( GetMessage (&msg, NULL, 0, 0) > 0 )
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}

return msg.wParam;
}

int PlayMusic ()
{
HANDLE hFind;
WIN32_FIND_DATA findFileData;

static TCHAR szPath[1024] = TEXT (".\\*.wav");

hFind = FindFirstFile (szPath, &findFileData);
if ( hFind != INVALID_HANDLE_VALUE )
{
//MessageBox (NULL, findFileData.cFileName, "", 0);
PlaySound (findFileData.cFileName, NULL, SND_FILENAME | SND_ASYNC);
while ( FindNextFile (hFind, &findFileData) )
{
//MessageBox (NULL, findFileData.cFileName, "", 0);
PlaySound (findFileData.cFileName, NULL, SND_FILENAME | SND_ASYNC);
}
}
else
{
MessageBox (NULL, "没找到文件", "", 0);
}
return 1;
}

LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HDC hDc;
PAINTSTRUCT ps;
HINSTANCE hInst;
RECT rect;

switch ( message )
{
case WM_CREATE:
{
GetClientRect (hWnd, &rect);
hInst = ((LPCREATESTRUCT)lParam)->hInstance;
CreateWindow (
"button",
TEXT ("播放"),
BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,
rect.right / 10, rect.bottom / 10, 40, 25, hWnd, (HMENU)ID_PLAY, hInst, NULL);
CreateWindow (
"button",
TEXT ("停止"),
BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,
rect.right / 10 + 50, rect.bottom / 10, 40, 25, hWnd, (HMENU)ID_STOP, hInst, NULL);
CreateWindow (
"button",
TEXT ("退出"),
BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,
rect.right / 10 + 100, rect.bottom / 10, 40, 25, hWnd, (HMENU)ID_EXIT, hInst, NULL);
}
break;
case WM_COMMAND:
{
switch ( HIWORD (wParam) )
{
case BN_CLICKED:
{
switch ( LOWORD (wParam) )
{
case ID_PLAY:
{
PlayMusic ();
//PlaySound (TEXT ("D:\\音频文件\\1.wav"), NULL, SND_FILENAME | SND_ASYNC | SND_LOOP);
}
break;
case ID_STOP:
{
PlaySound (NULL, NULL, SND_FILENAME);
}
break;
case ID_EXIT:
{
SendMessage (hWnd, WM_CLOSE, 0, 0);
}
break;
}
}
break;
}
}
break;
case WM_PAINT:
{
hDc = BeginPaint (hWnd, &ps);

EndPaint (hWnd, &ps);
}
break;
case WM_CLOSE:
{
PostQuitMessage (0);
}
break;
case WM_DESTROY:
{
DestroyWindow (hWnd);
}
break;
default:
return DefWindowProc (hWnd, message, wParam, lParam);
}

return 0;
}

『叁』 用C语言编写音乐播放器的源代码

如果你这来个播放器是在电脑上源使用,那用C语言显然有点太小题大做了,用其他高级语言实现起来要简单的多。如果是设计一个类似mp3的播放设备,那么C语言几乎是唯一的选择,而且代码复杂程度远远高于你的想象,不过幸运的是会有一些开源的代码可以移植,所以让这件事情也变得容易实现多了,如果再加上一个专用的解码芯片,那软件会简单点,解码效率也高多了。

『肆』 怎么用C语言编写简单的歌曲播放器

很简单的。

计算机发声原理:
声音有三个特性:响度、音调、音色。

响度,这个非常好理解。就是我们感觉到的声音的大小。具体点说就是由“振幅”决定,振幅越大响度越大。一般计量响度的单位是分贝,dB。
音调,这个就是声音的高低,由“频率”决定,频率越高音调越高。频率单位是赫兹,符号Hz。
音色,在生活当中,我们会发现各种物品发出的声音的特点是不一样的,如二胡和笛子。声音的特性就是音色。而决定声音的音色是由于物体本身的材料、结构。

对于我们的计算机而言。发声的设置都是固定了的。要么要计算机上的那个喇叭,那么是外接的音响等。

现在这里对计算机上的那个喇叭用Turbo C 2.0进行编程,使之发出动听的音乐《梁祝》。

第一步:定义《梁祝》的每一个音符的频率和时间,将定义好的频率和时间写入文件或者保存在数组里面。如果仅仅是写一两个程序自己玩玩的话,那直接保存在数组里面就可以了。如果你想自己写个播放器的话,那你先自己定义一种音乐格式文件(类似.mp3、.wav这种文件,这里暂时把这个文件定为.mymusic),将《梁祝》每个音符的频率、时间写入这个自定义的音乐格式文件liangzhu.mymusic。

第二步:完成了liangzhu.mymusic文件的定义后,我们要做的事情就是读文件,控制喇叭发声。这个具体可以参照现有的资料。这里需要事先写几个函数,读文件的函数,暂停函数,频率对照函数等等。

第三步,将上面的程序链接起来,就OK了。

将上面的步骤优化下,一个DIY的音乐播放器就成功了。
我上面说的只是控制了声音的频率和时间,其实还可以控制响度。对于一些特殊的设备,控制音色也不是不可能。

这种程序我在大一的时候写过。现在想起来不难的。
主要是对C语言是否熟练,当然,你想要实现一个播放器,那你途中会遇到很多困难的。
祝你好运!

『伍』 用C语言怎么编写音乐播放器

C语言好像不太合适做这个...【龙城飞将】正解,VC
6.0
可以。
不过楼主请听我一言专。
#include"stdio.h"
/*头文件*/
void
main()
/*函数类属型*/
{
printf("Hello
\n");
/*输出部分*/
}
看了你编的这个C程序,这个Hello
World.
很简单,但是从你的格式和语法看,你的代码量不够,我觉得你离写音乐播放器还有很大的距离。
多看看书吧,图片里我给你总结了一套C++要看的书。

『陆』 c语言编写音乐播放器

这个不用你写,直接调用操作系统给出的函数就可以了,其实就是API,大多程序都是这样写出来的,自己去查微软音乐媒体播放方面的API吧

『柒』 用C语言编写简单的音乐播放器!高悬赏quq

记得有一本书《Linux程序设计》里面有做播放器的步骤和程序,可以看一下

『捌』 如何用C/C++编写一个音乐播放器 不需要回答代码,能说说思路就行。

我来说说我的思路:

  1. 读取需要播放的文件

  2. 判断文件的类型 使用对应的解码函数(可以自己写 也可以调用的别人的库)(因为类型都有不同的格式)

  3. 装载文件到内存 利用声卡驱动程序(或是对应的发声函数)来播放


假设现在是在windows平台

您就可以利用 PlaySound函数来播放音乐 不过需要连接winmm.lib库而且需要包含头文件 mmsystem.h

好,现在我再举一个例子:(假设还是在windows平台)(这里利用了Beep函数来播放简单声音)


#include <stdio.h>
#include <windows.h>
#include <conio.h>
int main()
{
char filename[1024];
FILE* fp;
int a = 0,b = 0;
printf("您需要播放什么文件:");
gets(filename);
fp = fopen(filename,"r");*读取文件到内存 */

while(!ferror(fp) && fscanf(fp,"Beep(%d,%d) ",&a,&b) == 2)/*读取文件到内存 (按该文件制定的播放格式来播放)*/
{
Beep(a,b);/* 发声 */
}
fclose(fp);
fp = 0;
puts("播放完毕!");
getch();
return 0;
}

这个程序就是按我刚刚说的步骤来做的

要播放的文件使用了我自己制定的音乐格式(呵呵 只是为了给你说清楚)(真正的音乐格式其实是2进制格式的 而不是这里的文本格式)(格式是这样的:

Beep(频率,播放时间) )

『玖』 用C语言怎么编写音乐播放器

一.在程序中直接播放声音文件
在VC++ 中的多媒体动态连接库中提供了一组与音频设备有关的函数。利用这些函数可以方便地播放声音。最简单的播放声音方法就是直接调用VC++中提供的声音播放函数BOOL sndPlaySound ( LPCSTR lpszSound,UINT fuSound ); 或BOOL PlaySound( LPCSTR lpszSound, HMODULE hmod, DWORD fuSound );其中参数lpszSound是需要播放声音的.W***文件的路径和文件名, hmod在这里为NULL,fuSound是播放声音的标志,详细说明请参考VC++中的帮助。 例如播放C:soundmusic.wav可以用sndPlaySound ("c:\sound\music.wav",SND_ASYNC);或PlaySound("c:\sound\music.wav",NULL, SND_ASYNC|SND_NODEFAULT );如果没有找到music.wav文件,第一种格式将播放系统默认的声音,第二种格式不会播放系统默认的声音。

二.将声音文件加入到程序中
在VC++的程序设计中,可以利用各种标准的资源,如位图,菜单,对话框等。同时VC++也允许用户自定义资源,因此我们可以将声音文件作为用户自定义资源加入程序资源文件中,经过编译连接生成EXE文件,实现无.W***文件的声音播放。要实现作为资源的声音文件的播放,首先要在资源管理器中加入待播放的声音文件。
具体步骤入下:
1.获得包含资源的模块句柄:
HMODULE hmod=AfxGetResourceHandle();
2.检索资源块信息:
HRSRC hSndResource=FindResource(hmod,MAKEINTRESOURCE(IDR_W***E1),_T("W***E"));
3. 装载资源数据并加锁:
HGLOBAL hGlobalMem=LoadResource(hmod,hSndResource);
LPCTSTR lpMemSound=(LPCSTR)LockResource(hGlobalMem);
4.播放声音文件:
sndPlaySound(lpMemSound,SND_MEMORY));
5.释放资源句柄:
FreeResource(hGlobalMem);

阅读全文

与用c编写音乐播放器相关的资料

热点内容
爱情围墙歌词 浏览:230
道奇酷威广告背景音乐 浏览:106
比喻轻音乐之美的文字 浏览:542
小号音乐下载 浏览:578
歌曲专辑图下载地址 浏览:867
财神驾到歌曲mp3下载 浏览:734
琴歌指弹海阔天空吉他谱 浏览:355
下载mp4格式的音乐 浏览:352
电脑听音乐用什么 浏览:512
最好酷狗音乐播放器 浏览:502
信乐团队的假如简谱 浏览:243
平安酷狗音乐 浏览:760
佳人轻抚桃花mp3下载 浏览:453
infinite网易云音乐 浏览:844
岁月赵忠祥背景音乐 浏览:980
如何将电脑的歌体添加到苹果音乐 浏览:672
fade钢琴mp3 浏览:86
奔跑吧兄弟宋仲基背景音乐 浏览:806
成都彩虹小学音乐老师 浏览:496
凤凰传奇星光歌曲点评 浏览:930