资源简介

由win32 C语言编写的集音频、视频播放于一身的播放器 内含源代码、位图资源、可执行程序以及avi解码程序 主要用于我的博客资源下载,博文地址: http://blog.csdn.net/crocodile__/article/details/10832337

资源截图

代码片段和文件信息

//Player.c
#include“Window_Xp_style.h“

LRESULT CALLBACK WndProc(HWND UINT WPARAM LPARAM);
VOID openFile(HWND);
VOID openFileDialog(HWND);

int WINAPI WinMain(HINSTANCE hInstance
   HINSTANCE hPrevInstance
                   PSTR szCmdLine
   int iCmdShow)
{
static TCHAR szAppName[] = TEXT(“Player“);
HACCEL hAccel;
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
int cxScreen cyScreen;

wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpfnWndProc = WndProc;
wndclass.cbClsExtra = 0;
wndclass.cbWndExtra = 0;
wndclass.hInstance = hInstance;
wndclass.hIcon = LoadIcon(hInstance MAKEINTRESOURCE(IDI_APP));
wndclass.hCursor = LoadCursor(NULL IDC_ARROW);
wndclass.hbrBackground = (HBRUSH)GetStockobject(WHITE_BRUSH);
wndclass.lpszMenuName = MAKEINTRESOURCE(IDR_MENU);//加载菜单
wndclass.lpszClassName = szAppName;

if(!RegisterClass(&wndclass))
{
MessageBox(NULL TEXT(“This program requires Windows NT!“)
szAppName MB_IConerror);
return 0;
}

cxScreen = GetSystemMetrics(SM_CXSCREEN);
cyScreen = GetSystemMetrics(SM_CYSCREEN);
hwnd = CreateWindowA(szAppName
TEXT(“Player Demo“)
WS_OVERLAPPEDWINDOW
cxScreen * 7 / 20
cyScreen / 4
cxScreen * 3 / 10
cyScreen / 2
NULL
NULL
hInstance
NULL);

ShowWindow(hwnd iCmdShow);
UpdateWindow(hwnd);

hAccel = LoadAccelerators (hInstance MAKEINTRESOURCE(IDR_ACCELERATOR));

while(GetMessage(&msg NULL 0 0))
{
  if (!TranslateAccelerator (hwnd hAccel &msg))
  {
   TranslateMessage (&msg) ;
   DispatchMessage (&msg) ;
  }
}

return msg.wParam;
}

//打开音频或视频文件
VOID openFile(HWND hParent)
{
MCI_DGV_OPEN_PARMS mciOpen;//MCI打开参数结构体
MCI_DGV_STATUS_PARMS mciStatus;//MCI状态参数结构体
UINT uDeviceID;//设备ID
RECT rClient;//父窗口客户区大小

mciStatus.dwItem=MCI_DGV_STATUS_HWND;

//初始化mciOpen以及打开avi文件
ZeroMemory(&mciOpensizeof(mciOpen));
mciOpen.dwCallback =(DWORD)hParent;
mciOpen.lpstrAlias = TEXT(“movie“);//设备别名

mciOpen.lpstrElementName= szFileDir;//avi文件地址

mciOpen.hWndParent = hParent;//父窗口
mciOpen.dwstyle = WS_CHILD;//窗口风格

mciSendCommand(0  MCI_OPEN MCI_OPEN_ALIAS | MCI_OPEN_ELEMENT | 
MCI_DGV_OPEN_PARENT | MCI_DGV_OPEN_WS (DWORD)&mciOpen);

//获取播放avi视频的子窗口hVideo
uDeviceID=mciOpen.wDeviceID;
mciSendCommand(uDeviceID MCI_STATUS  MCI_STATUS_ITEM (DWORD)&mciStatus);
hVideo=(HWND)mciStatus.dwReturn;//获取播放视频的窗口句柄

//重绘主窗口
GetClientRect(hParent &rClient);
SendMessage(hParent WM_SIZE 0 MAKELONG(rClient.right - rClient.left rClient.bottom - rClient.top));

//判断当前打开的文件是否是音频文件
if(strstr(szFileDir TEXT(“mp3“)) || strstr(szFileDir TEXT(“mp2“)))
{
isMp = TRUE;
}
}

//打开文件浏览对话框
VOID openFileDialog(HWND hOwner)
{
static TCHAR szFilePath[MAX_PATH] sztitleName[MAX_PATH];
OPENFILENAME ofn;
TCHAR szFileFilter[] = TEXT(“Media Files(*.avi;*.mpg;*.m

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件     3888054  2013-09-01 15:50  bk.bmp
     文件       16958  2013-09-01 16:27  icon.ico
     文件        7515  2013-09-01 19:26  Player.c
     文件     3919360  2013-09-01 19:24  Player.exe
     文件         663  2013-09-01 17:29  Window_Xp_style.h
     文件    10773318  2013-08-31 10:36  XviD.rar

评论

共有 条评论