当前位置:首页 » 编程语言 » c语言mp3

c语言mp3

发布时间: 2022-12-18 14:34:50

‘壹’ c语言怎么输出mp3的二进制编码

使用fopen以二进制只读方式打开mp3文件,用fseek求得文件大小,申请一片相应大小的内存空间用作缓冲区,然后将文件整个读入到缓冲区中。

//二进制方式打开文件
FILE*fp=fopen("example.mp3","rb");
if(NULL==fp)
{
printf("Unabletoopenmp3file. ");
exit(1);
}

//求得文件的大小
fseek(fp,0,SEEK_END);
intsize=ftell(fp);
rewind(fp);

//申请一块能装下整个文件的空间
char*buffer=(char*)malloc(sizeof(char)*size);

//读文件
fread(buffer,size,1,fp);

‘贰’ 怎么用C语言打开一个MP3文件吖

用VS2003或2005建一个带MFC的名为Mp3Player的控制台应用程序,把这些代码复制到Mp3Player.cpp

// Mp3Player.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "Mp3Player.h"
#include "mmsystem.h"

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

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// 唯一的应用程序对象

CWinApp theApp;

using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;

// 初始化 MFC 并在失败时显示错误
if (!AfxWinInit(::GetMoleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: 更改错误代码以符合您的需要
_tprintf(_T("错误: MFC 初始化失败\n"));
nRetCode = 1;
}
else
{
//"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";
CFileDialog OpenFileDlg(TRUE ,
NULL ,
NULL ,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT ,
_T("MP3 文件(*.mp3)|*.mp3||"));
if (OpenFileDlg.DoModal() == IDOK)
{
CString strFilePath = OpenFileDlg.GetPathName();
MCI_OPEN_PARMS mop;
mop.dwCallback = NULL;
mop.lpstrAlias = NULL;
mop.lpstrDeviceType = _T("MP3");
mop.lpstrElementName = strFilePath;
mop.wDeviceID = 0;

MCIERROR err = mciSendCommand(NULL ,
MCI_OPEN ,
MCI_OPEN_ELEMENT ,
(DWORD)&mop);

MCI_PLAY_PARMS mpp;
mpp.dwCallback = NULL;
mpp.dwFrom = 0;
mpp.dwTo = 0;
err = mciSendCommand(mop.wDeviceID , MCI_PLAY , MCI_FROM | MCI_NOTIFY, (DWORD_PTR)&mpp);
}

}

getchar();

return nRetCode;
}

‘叁’ 求助大神 C语言怎么播放 MP3文件

#include<iostream>

#include<algorithm>

#include<vector>

#include<malloc.h>

#include<stdio.h>

usingnamespacestd;

vector<int>num;

int*pUnion=(int*)malloc(sizeof(int)*200000);

inti;

intcount_number;

intmain()

{

scanf("%d",&i);

for(intj=0;j<i;j++)

{

intnumber;

scanf("%d",&number);

num.push_back(number);

*(pUnion+j)=number;

}

sort(pUnion,pUnion+i-1);

sort(num.begin(),num.end());

int*pEnd=unique(pUnion,pUnion+i-1);

intjian_ge=pEnd-pUnion;

while(pUnion!=pEnd)

{

count_number=count(num.begin(),num.end(),*pUnion);

printf("%d%d ",*pUnion,count_number);

pUnion++;

}

return0;

}

‘肆’ 怎样用C语言编程打开一个文件(比如mp3,mp4)

可以使用PlaySound()函数播放mp3音频,该函数原型位于windows.h。

PlaySound函数的声明为:
BOOL PlaySound(LPCSTR pszSound, HMODULE hwnd,DWORD fdwSound);
参数pszSound是指定了要播放声音的字符串。
参数hwnd是应用程序的实例句柄,除非pszSound的指向一个资源标识符(即fdwSound被定义为SND_RESOURCE),否则必须设置为NULL。
参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
使用PlaySound函数时需要在#include<windows.h>后面加上(注意:不能加在前面):
例程:

CFileDialog dlg(TRUE, "mp3", "*.mp3", OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT, "mp3文件(*.mp3)|*.mp3|");
/*创建选择对话框,让用户从文件夹中选取一个MP3文件*/
int iRet = dlg.DoModal();//获得对话框返回值
if(IDOK == iRet) //如果返回值成功,表明成功获取一个MP3文件
{
CString pathName= dlg.GetPathName(); //得到文件的路径名称
PlaySound( pathName , NULL, SND_FILENAME | SND_ASYNC);//用playsound函数播放该文件
}

‘伍’ c语言中如何播放mp3数据帧

可以使用PlaySound()函数播放mp3声音,该函数原型位于windows.h中,
函数原型为:
BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);

参数pszSound是指定了要播放声音的字符串,该参数可以是MP3文件的名字,或是MP3资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的系统事件声音。如果该参数为NULL则停止正在播放的声音。

参数hmod是应用程序的实例句柄,当播放MP3资源时要用到该参数,否则它必须为NULL。

参数fdwSound是标志的组合,各种可选的标志及意义如下所示。若成功则函数返回TRUE,否则返回FALSE。

播放标志以及含义:

SND_APPLICATION
用应用程序指定的关联来播放声音。

SND_ALIAS
pszSound参数指定了注册表或WIN.INI中的系统事件的别名。

SND_ALIAS_ID
pszSound参数指定了预定义的声音标识符。

SND_ASYNC
用异步方式播放声音,PlaySound函数在开始播放后立即返回。

SND_FILENAME
pszSound参数指定了MP3文件名。

SND_LOOP
重复播放声音,必须与SND_ASYNC标志一块使用。

SND_MEMORY
播放载入到内存中的声音,此时pszSound是指向声音数据的指针。

SND_NODEFAULT
不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。

SND_NOSTOP
PlaySound不打断原来的声音播出并立即返回FALSE。

SND_NOWAIT
如果驱动程序正忙则函数就不播放声音并立即返回。

SND_PURGE
停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。

SND_RESOURCE
pszSound参数是WAVE资源的标识符,这时要用到hmod参数。

SND_SYNC
同步播放声音,在播放完后PlaySound函数才返回。

************************************************************

例如我想播放在C:\WINDOWS\Media目录中的 Windows XP 启动.MP3文件
程序如下:

#include <windows.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
PlaySound("C:\\WINDOWS\\Media\\Windows XP 启动.MP3", NULL, SND_FILENAME | SND_ASYNC);
system("pause");
return 0;
}
*/:)))))))))))))))))))))))))))))))

‘陆’ C语言如何播放mp3格式音乐

windows现有的API似乎只支持播放.wav格式的音频,mp3格式恐怕你得再去网上找找开源代码

//播放音频"1.wav"
#include<stdio.h>
#include<windows.h>
#pragmacomment(lib,"winmm.lib")

intmain()
{
PlaySound("1.wav",NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);
getchar();
return0;
}

‘柒’ c语言程序设计MP3或MP4文件基本信息的解析

找了个MP3看了下,comment是29个字节。
可参考 http://www.chineselinuxuniversity.net/articles/27374.shtml

拿VC的C语言写了下:
头文件:
#include <stdio.h>

// TODO: reference additional headers your program requires here

#define MP3_ID3_LENGTH 10
typedef struct tag_ID3_INFO
{

} ID3_INFO;

#define IDENTIFY_LEN 3
#define TITLE_LEN 30
#define ARTIST_LEN 30
#define ALBUM_LEN 30
#define YEAR_LEN 4
#define COMMENT_LEN 30
#define GENRE_LEN 1

// IDENTIFY_LEN + TITLE_LEN +...
#define MP3_INFO_LENGTH 128

typedef struct tag_MP3_INFO
{
char Identify[IDENTIFY_LEN + 1]; //TAG三个字母
//这里可以用来鉴别是不是文件信息内容
char Title[TITLE_LEN + 1]; //歌曲名,30个字节
char Artist[ARTIST_LEN + 1]; //歌手名,30个字节
char Album[ARTIST_LEN + 1]; //所属唱片,30个字节
char Year[YEAR_LEN + 1]; //年,4个字节
char Comment[COMMENT_LEN + 1]; //注释,28个字节
char Genre[GENRE_LEN + 1]; //类型 ,1个字节
} MP3_INFO;

C文件:
#include <string.h>

#define MP3_OK 1
#define MP3_ERROR 1

FILE *OpenMp3File(char *pFileName);
int ReadMP3Info(FILE *pFile, MP3_INFO *pstInfo);
int OutputMP3Info(MP3_INFO *pstMp3Info);

int main(int argc, char* argv[])
{
FILE *pFile = NULL;
MP3_INFO stMp3Info = {0};
char *pfname = "E:\\Project\\MP3\\test.MP3";

pFile = OpenMp3File(pfname);
if (NULL == pFile)
{
return MP3_ERROR;
}

ReadMP3Info(pFile, &stMp3Info);

printf("\r\nMP3 file: %s", pfname);
OutputMP3Info(&stMp3Info);

printf("Hello World!\n");
return MP3_OK;
}

FILE *OpenMp3File(char *pFileName)
{
FILE *pFile = NULL;
pFile = fopen(pFileName,"rb");
if (NULL==pFile)
{
printf("open read file error!!");
return NULL;
}

return pFile;
}

int ReadMP3Info(FILE *pFile, MP3_INFO *pstInfo)
{
int len = 0;
if ((NULL == pFile) || (NULL == pstInfo))
{
return MP3_ERROR;
}

fseek(pFile, 0, SEEK_END);
len = ftell(pFile);
if (len <= (MP3_INFO_LENGTH + MP3_ID3_LENGTH))
{
return MP3_ERROR;
}

memset(pstInfo, 0, sizeof(MP3_INFO));

fseek(pFile, -MP3_INFO_LENGTH, SEEK_END);
len = fread((char *)(pstInfo->Identify), 1, IDENTIFY_LEN, pFile);
len += fread((char *)(pstInfo->Title), 1, TITLE_LEN, pFile);
len += fread((char *)(pstInfo->Artist), 1, ARTIST_LEN, pFile);
len += fread((char *)(pstInfo->Album), 1, ALBUM_LEN, pFile);
len += fread((char *)(pstInfo->Year), 1, YEAR_LEN, pFile);
len += fread((char *)(pstInfo->Comment), 1, COMMENT_LEN, pFile);
len += fread((char *)(pstInfo->Genre), 1, GENRE_LEN, pFile);
if (MP3_INFO_LENGTH != len)
{
return MP3_ERROR;
}

return MP3_OK;
}

int OutputMP3Info(MP3_INFO *pstMp3Info)
{
printf("\r\nTag : %s", pstMp3Info->Identify);
printf("\r\nTitle : %s", pstMp3Info->Title);
printf("\r\nArtist : %s", pstMp3Info->Artist);
printf("\r\nAlbum : %s", pstMp3Info->Album);
printf("\r\nYear : %s", pstMp3Info->Year);
printf("\r\nComment: %s", pstMp3Info->Comment);

return MP3_OK;
}

测试:
MP3 file: E:\Project\MP3\test.MP3
Tag : TAG
Title : TrackTitle
Artist : ArtistName
Album : AlbumTitle
Year : 2012
Comment: This is a comment

‘捌’ C语言中PlaySound函数如何播放MP3文件

可以使用PlaySound()函数播放声音文件,

该函数原型位于#include <mmsystem.h>中,

因此要使用PlaySound,首先需要添加对这个头文件的引用。

提示:mm就是MultiMedia的简写,多媒体

【1、函数使用说明】

函数原型为: BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);

返回值表示是否播放成功。

参数pszSound是要播放声音的文件名,

只支持WAV等格式的文件(应该不能播放MP3格式文件);

你可以去mp3..com用“wav”为关键词可以搜到很多wav音乐,

也可以用工具将其他格式的转换为wav格式的。

参数hmod是应用程序的实例句柄,一般传递NULL就可以;

参数fdwSound是标志的组合掩码,

可选值有SND_FILENAME、SND_ASYNC、SND_SYNC等。

SND_FILENAME表示pszSound参数指定的是文件名(pszSound还可以指定资源、内存音乐、系统音乐等等);

SND_ASYNC:用异步方式播放声音,PlaySound函数在开始播放后立即返回;

SND_SYNC:同步播放声音,在播放完后PlaySound函数才返回;

SND_LOOP一遍遍的重复播放声音,必须与SND_ASYNC标志一块使用。

【2、使用举例】
PlaySound(TEXT("C:\\WINDOWS\\Media\\Windows XP 启
动.wav"),NULL,SND_FILENAME|SND_SYNC);

注意的问题:文件名中的反斜线要用“\\”,

因为C语言中“\”默认是转义符,

如果要表示“\”则需要使用“\\”,

对这点不明白的请回去翻一下C语言的书;

对中文字符串要使用TEXT宏。

‘玖’ c语言播放MP3 API函数是什么 怎么用

  1. 可以使用PlaySound()函数播放mp3音频,该函数原型位于windows.h。

    PlaySound函数的声明为:
    BOOL PlaySound(LPCSTR pszSound, HMODULE hwnd,DWORD fdwSound);
    参数pszSound是指定了要播放声音的字符串。
    参数hwnd是应用程序的实例句柄,除非pszSound的指向一个资源标识符(即fdwSound被定义为SND_RESOURCE),否则必须设置为NULL。
    参数fdwSound是标志的组合,如下表所示。若成功则函数返回TRUE,否则返回FALSE。
    使用PlaySound函数时需要在#include<windows.h>后面加上(注意:不能加在前面):

  2. 例程:

    CFileDialogdlg(TRUE,"mp3","*.mp3",OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT,"mp3文件(*.mp3)|*.mp3|");
    /*创建选择对话框,让用户从文件夹中选取一个MP3文件*/
    intiRet=dlg.DoModal();//获得对话框返回值
    if(IDOK==iRet)//如果返回值成功,表明成功获取一个MP3文件
    {
    CStringpathName=dlg.GetPathName();//得到文件的路径名称
    PlaySound(pathName,NULL,SND_FILENAME|SND_ASYNC);//用playsound函数播放该文件
    }
热点内容
cf弹道脚本 发布:2025-01-26 15:36:40 浏览:54
我的世界花钱买的服务器 发布:2025-01-26 15:34:50 浏览:89
php环境部署 发布:2025-01-26 15:28:09 浏览:17
python实现svm 发布:2025-01-26 15:24:25 浏览:381
易语言写ip全局代理服务器 发布:2025-01-26 15:04:01 浏览:668
gm命令在哪个文件夹 发布:2025-01-26 15:03:12 浏览:307
javadate类 发布:2025-01-26 14:58:54 浏览:352
领航s1配置怎么样 发布:2025-01-26 09:58:10 浏览:763
公司局域网搭建服务器搭建 发布:2025-01-26 09:16:56 浏览:433
android裁剪圆形图片 发布:2025-01-26 09:05:56 浏览:411