mp3文件播放器源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
mp3文件播放器源代码头文件代码(resource。H)
//{{NO_DEPENDENCIES}}
// Microsoft Developer Studio generated include file.
// Used by Script1.rc
//
#define IDI_ICON1 101
#define IDI_MAINICON 101
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONL Y_SYMBOLS
#define _APS_NEXT_RESOURCE_V ALUE 102
#define _APS_NEXT_COMMAND_V ALUE 40001
#define _APS_NEXT_CONTROL_V ALUE 1000
#define _APS_NEXT_SYMED_V ALUE 101
#endif
#endif
主程序代码(main)
#include
#include
#include
#include
#include
#include
#pragma comment( lib, "Strmiids.lib")
#pragma comment( lib, "winmm.lib" )
#define V_RETURN(x) { hr = x; if( FAILED(hr) ) { return hr; } }
//////////////////////////////////////////////////////////////////////////
//变量定义:
IGraphBuilder* pGBuilder;
IMediaPosition* pMPos;
//////////////////////////////////////////////////////////////////////////
HRESULT InitDirectShow()
{
HRESULT hr;
CoInitialize(NULL); //初始化COM
//创建各个对象
CoCreateInstance(CLSID_FilterGraph, NULL,
CLSCTX_INPROC, IID_IGraphBuilder, (void**)&pGBuilder);
V_RETURN(pGBuilder->QueryInterface(IID_IMediaControl, (void**)&pMControl));
V_RETURN(pGBuilder->QueryInterface(IID_IMediaPosition, (void**)&pMPos));
return S_OK;
}
HRESULT LoadMusicFile(const char *path)
{
HRESULT hr;
CHAR strSoundPath[MAX_PATH]; //存储音乐所在路径
WCHAR wstrSoundPath[MAX_PATH]; //存储UNICODE形式的路径
strcpy(strSoundPath, path);
MultiByteToWideChar(CP_ACP, 0, strSoundPath, -1,wstrSoundPath, MAX_PATH);
V_RETURN(pGBuilder->RenderFile(wstrSoundPath, NULL)); //调入文件
return S_OK;
HRESULT Play()
{
HRESULT hr;
//播放MP3的方法十分简单:
return S_OK;
}
HRESULT Stop()
{
//最后,我们要停止播放音乐并释放各个对象:
V_RETURN(pMControl->Stop()); //停止播放
return S_OK;
}
void FreeDirectShow()
//释放对象
CoUninitialize(); //释放COM
}
//////////////////////////////////////////////////////////////////////////
int main()
{
char cmd[255] = {NULL}, path[MAX_PATH] = {NULL};
if(FAILED(InitDirectShow()))
{
getch();
return 1;
}
while(1)
{
printf("*****这个是用于制作游戏的音乐播放程序,由于时间关系和便于学习我不printf("使用方法--输入以下命令:\n#载入并播放音乐:play\n#停止播放:
scanf("%s", cmd);
if(!stricmp(cmd, "play"))
{
printf("请输入文件名:");
printf("正在处理命令...\n", cmd, path);
if(FAILED(LoadMusicFile(path)))
{
getch();
path[0] = 0;
}
else Play();
else
{
printf("正在处理命令...\n", cmd, path);
if(!stricmp(cmd, "replay"))
{
Stop();
}
else if(!stricmp(cmd, "stop"))
Stop();
else if(!stricmp(cmd, "exit"))
goto quit;
else