当前位置:文档之家› mp3文件播放器源代码

mp3文件播放器源代码

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 <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <dshow.h>
#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
{
printf("无法识别的命令");
getch();
}
}
quit:
FreeDirectShow();
}。

相关主题