当前位置:首页 » 编程语言 » 怎么把mp3粘贴到c语言里
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

怎么把mp3粘贴到c语言里

发布时间: 2023-01-28 20:09:50

c语言中添加音乐的问题

mciSendString(TEXT("closeMySong"),NULL,0,NULL);/*停止播放,可以解决一些不必要的麻烦*/ wsprintf(play_lujing2,"open"%s"aliasmysong",“d:/爱你一万年.mp3”);//将字符串准备好 mciSendString(TEXT(play_lujing2),NULL,0,NULL);//将歌曲打开 mciSendString(TEXT("playMySong"),NULL,0,NULL);//播放歌曲 这样就可以实现播放了,更多的功能请下载这个:(可以看MV、下载歌曲的c语言播放器)

② C语言如何将多个.mp3文件合并到一个.bin文件里面呀求代码

最简单的就是用cmd下的命令行,比如 /b 1.mp3+2.mp3 3.mp3就可以将1和2合并成3,你直接生成这个字符串,执行就行了。

③ c语言实现文件拷贝问题

#include <stdio.h>

void (const char* src, const char* dest)
{
FILE* in = fopen(src, "rb");
FILE* out = fopen(dest, "wb");

if (in && out)
{
static const size_t size = 1024;

char buf[size];

while (!feof(in))
{
size_t bytes_read = fread(buf, 1, size, in);
fwrite(buf, 1, bytes_read, out);
}

fclose(in);
fclose(out);
}
}

int main(int, char*[])
{
("aa", "bb");

return 0;
}

④ 怎么用c语言打开一个MP3文件(直接给代码),需要什么软件进行输入

VC++中播放声音的方法
2009-09-23 14:58
声音是多媒体的一个重要组成部分,在应用程序中加入声音可以使界面更友好。在VC++中可以根据不同的应用要求,用不同的方法实现声音的播放。

一.播放声音文件的简单方法
在VC++ 中的多媒体动态连接库中提供了一组与音频设备有关的函数。利用这些函数可以方便地播放声音。最简单的播放声音方法就是直接调用VC++中提供的声音播放函数BOOL sndPlaySound ( LPCSTR lpszSound,UINT fuSound ); 或BOOL PlaySound( LPCSTR lpszSound, HMODULE hmod, DWORD fuSound );其中参数lpszSound是需要播放声音的.WAV文件的路径和文件名, 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文件,实现无.WAV文件的声音播放。
要实现作为资源的声音文件的播放,首先要在资源管理器中加入待播放的声音文件(实现过程并不复杂,这里不在叙述)。假设生成的声音文件资源标识符为IDR_WAVE1。在播放时只需要调用下面的语句:
PlaySound(MAKEINTRESOURCE(IDR_WAVE1),AfxGetResourceHandle(), SND_ASYNC|SND_RESOURCE|SND_NODEFAULT|SND_LOOP);
其中MAKEINTRESOURCE()宏将整数资源标识符转变为字符串,AfxGetResourceHandle()函数返回包含资源的模块句柄,
SND_RESOURCE是必须的标志。
作为资源的声音文件的第二种播放方法是把资源读入内存后作为内存数据播放。具体步骤入下:
1.获得包含资源的模块句柄:
HMODULE hmod=AfxGetResourceHandle();
2.检索资源块信息:
HRSRC hSndResource=FindResource(hmod,MAKEINTRESOURCE(IDR_WAVE1),_T("WAVE"));
3. 装载资源数据并加锁:
HGLOBAL hGlobalMem=LoadResource(hmod,hSndResource);
LPCTSTR lpMemSound=(LPCSTR)LockResource(hGlobalMem);
4.播放声音文件:
sndPlaySound(lpMemSound,SND_MEMORY));
5.释放资源句柄:
FreeResource(hGlobalMem);

三.播放声音文件的高级方法
在VC++中提供了一组对音频设备及多媒体文件直接进行操作的函数。利用这些函数可以灵活地对声音文件进行各种处理。
首先介绍几个要用到的数据结构。WAVEFORMATEX结构定义了WAVE音频数据文件的格式。WAVEHDR结构定义了波形音频缓冲区。读出的数据首先要填充此缓冲区才能送音频设备播放。WAVEOUTCAPS结构描述了音频设备的性能。MMCKINFO结构包含了RIFF文件中一个块的信息。详细的说明请参考VC++中的帮助。
下面给出程序流程简图及程序源代码清单,在VC++环境下可直接使用:

源程序清单如下:
LPSTR szFileName;//声音文件名
MMCKINFO mmckinfoParent;
MMCKINFO mmckinfoSubChunk;
DWORD dwFmtSize;
HMMIO m_hmmio;//音频文件句柄
DWORD m_WaveLong;
HPSTR lpData;//音频数据
HANDLE m_hData;
HANDLE m_hFormat;
WAVEFORMATEX * lpFormat;
DWORD m_dwDataOffset;
DWORD m_dwDataSize;
WAVEHDR pWaveOutHdr;
WAVEOUTCAPS pwoc;
HWAVEOUT hWaveOut;
//打开波形文件
if(!(m_hmmio=mmioOpen(szFileName,NULL,MMIO_READ|MMIO_ALLOCBUF)))
{
//File open Error
Error("Failed to open the file.");//错误处理函数
return false;
}
//检查打开文件是否是声音文件
mmckinfoParent.fccType =mmioFOURCC('W','A','V','E');
if(mmioDescend(m_hmmio,(LPMMCKINFO)&mmckinfoParent,NULL,MMIO_FINDRIFF))
{
//NOT WAVE FILE AND QUIT
}
//寻找 'fmt' 块
mmckinfoSubChunk.ckid =mmioFOURCC('f','m','t',' ');
if(mmioDescend(m_hmmio,&mmckinfoSubChunk,&mmckinfoParent,MMIO_FINDCHUNK))
{
//Can't find 'fmt' chunk
}
//获得 'fmt '块的大小,申请内存
dwFmtSize=mmckinfoSubChunk.cksize ;
m_hFormat=LocalAlloc(LMEM_MOVEABLE,LOWORD(dwFmtSize));
if(!m_hFormat)
{
//failed alloc memory
}
lpFormat=(WAVEFORMATEX*)LocalLock(m_hFormat);
if(!lpFormat)
{
//failed to lock the memory
}
if((unsigned long)mmioRead(m_hmmio,(HPSTR)lpFormat,dwFmtSize)!=dwFmtSize)
{
//failed to read format chunk
}
//离开 fmt 块
mmioAscend(m_hmmio,&mmckinfoSubChunk,0);
//寻找 'data' 块
mmckinfoSubChunk.ckid=mmioFOURCC('d','a','t','a');
if(mmioDescend(m_hmmio,&mmckinfoSubChunk,&mmckinfoParent,MMIO_FINDCHUNK))
{
//Can't find 'data' chunk
}
//获得 'data'块的大小
m_dwDataSize=mmckinfoSubChunk.cksize ;
m_dwDataOffset =mmckinfoSubChunk.dwDataOffset ;
if(m_dwDataSize==0L)
{
//no data in the 'data' chunk
}
//为音频数据分配内存
lpData=new char[m_dwDataSize];
if(!lpData)
{
//faile
}
if(mmioSeek(m_hmmio,SoundOffset,SEEK_SET)<0)
{
//Failed to read the data chunk
}
m_WaveLong=mmioRead(m_hmmio,lpData,SoundLong);
if(m_WaveLong<0)
{
//Failed to read the data chunk
}
//检查音频设备,返回音频输出设备的性能
if(waveOutGetDeVCaps(WAVE_MAPPER,&pwoc,sizeof(WAVEOUTCAPS))!=0)
{
//Unable to allocate or lock memory
}
//检查音频输出设备是否能播放指定的音频文件
if(waveOutOpen(&hWaveOut,DevsNum,lpFormat,NULL,NULL,CALLBACK_NULL)!=0)
{
//Failed to OPEN the wave out devices
}
//准备待播放的数据
pWaveOutHdr.lpData =(HPSTR)lpData;
pWave

OutHdr.dwBufferLength =m_WaveLong;
pWaveOutHdr.dwFlags =0;
if(waveOutPrepareHeader(hWaveOut,&pWaveOutHdr,sizeof(WAVEHDR))!=0)
{
//Failed to prepare the wave data buffer
}
//播放音频数据文件
if(waveOutWrite(hWaveOut,&pWaveOutHdr,sizeof(WAVEHDR))!=0)
{
//Failed to write the wave data buffer
}
//关闭音频输出设备,释放内存
waveOutReset(hWaveOut);
waveOutClose(hWaveOut);
LocalUnlock(m_hFormat);
LocalFree(m_hFormat);
delete [] lpData;
说明:1)以上使用的音频设备和声音文件操作函数的声明包含在mmsystem.h头文件中,因此在程序中必须用#include "mmsystem.h"语句加入头文件。同时在编译时要加入动态连接导入库winmm.lib,具体实现方法是从Developer Studio的Project菜单中选择Settings,然后在Link选项卡上的Object/Library Moles控制中加入winmm.lib。2)在pWaveOutHdr.lpData中指定不同的数据,可以播放音频数据文件中任意指定位置的声音。3) 以上程序均在VC++6.0中调试通过,在文中省略了对错误及异常情况的处理,在实际应用中必须加入。
四.结论
在VC++中可以根据应用需要采用不同的方法播放声音文件。简单应用可以直接调用声音播放函数。第二种方法可以把声音作为资源加入可执行文件中。如果在播放之前要对声音数据进行处理,可用第三种方法。

参考书目:
1. 美 Paul Perry 陈向群 等译《多媒体开发指南》 清华大学出版社
2. 美 Peter Norton, Rob McGregor 孙凤英 等译《MFC开发Windows95/NT4应用程序》 清华大学出版社 1998
3. 周敬利 《多媒体声卡技术及应用》 电子工业出版社 1998

⑤ 怎么用C语言读写音乐文件

这个程序可能是最简单的mp3播放器了。当然也谈不上什么功能。但是确实能播放。
链接时要指定库文件。VC++是vfw32.lib, GCC是libvfw32.a.
我在VC6.0和GCC/MinGW 3.3.1下都通过了。
假设程序名是MyPlay, 目录下还有一个aaa.mp3, 运行MyPlay aaa.mp3即可。
注意Sleep(50000)是让他最多播放50秒。没有Sleep()的话,窗口一闪就退出了。
具体的MCI函数请查有关资料。

#include <windows.h>
#include <vfw.h>

int main(int argc, char* argv[])
{
if (argc>1) {
HWND MyPlayer = MCIWndCreate(NULL,GetMoleHandle(NULL), 0, argv[1]);
MCIWndPlay(MyPlayer);
Sleep(50000);
}
return 0;
}
这个程序还可以播放MIDI, AVI, WMV, MPG等影音文件。
如果只是后台播放MIDI或MP3,不想显示那个没有用的窗口,把MCIWndCreate()第三个参数0改成WS_POPUP即可。
如果想精确控制Sleep()至MP3播放结束,可以改成 Sleep(MCIWndGetLength(MyPlayer));

对于mp3, MCIWndGetLength()返回值的单位是毫秒,可以直接用于Sleep()延时。
对于mpg, MCIWndGetLength()返回值的单位是帧数,还要转换成毫秒才能用于Sleep().
具体MCIWndGetLength()返回值的单位是什么,可以调用MCIWndGetTimeFormat()来查询。

>是C,不是C++ 更不是Vc++
你误解了。VC6.0不只是支持C++, 也支持C. GCC更是C编译器,不是C++编译器。
这个程序是地地道道的C程序,没有一丁点儿 C++ 的成分。但是他调用了Windows API函数,所以必须用支持Windows编程的32位C编译器,不一定用VC或GCC。
很多人认为,刚学C语言最好用GCC或VC的命令行方式,但遗憾的大多教学用的C环境仍然选用20多年前的TC。如果坚持用16位的TC可以做一些事情,但在现在绝大多数事情是他做不到的。

⑥ c语言中怎样实现复制MP3,求源程序

用c++很好做,c忘了……给你一个读出的源码,写入的方式与之类似
假设源文件为s,目标缓冲区为d
================================
ifstream file(s,ios::binary) //二进制方式打开源文件
long pointer = 0; //当前复制的位置
do{
file.read(buf+pointer, DATA_SIZE); //将文件读出至缓冲区内,每次读取DATA_SIZE大小
pointer += DATA_SIZE;
}while(file.good()); //文件结尾

⑦ 急求高手啊,怎么在c语言程序中插入音乐啊!!!!

不要误导新手!C语言在编程方面是无所不能的!上到HTML,下到硬件驱动,系统内核!
可以实现,但是比较麻烦!在TC能运行,也就是控制台程序,首先,你的程序要能驱动你机器的硬件,也就是你能够和硬件通讯,C语言串口通讯之类的东西.用Unix的思想,任何硬件都可以看做文件来处理!
Windows了解不是很深,这一步可能Windows会提供系统函数的调用.然后将音乐文件以对应声卡的协议,以流的方式向打开的串口里面写就OK了(跟写文件一样)!

上面是原理,其实你可以在网上收搜索具有音乐播放功能的动态链接库(windows下后缀应该是.dll),然后用C语言调用其中对应的函数就OK了.

⑧ 怎么用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;

}