Вход на сайт
Воспоминание мультимедия 18.02.2025
303 просмотров
Перейти к просмотру всей ветки
в ответ uscheswoi_82 3 дня назад, 12:17
1. Создадим в Embarcadero Dev-C++ новый проект Windows Application и язык выберем C (т.е. Си).
2. Добавим в проект библиотеку ../../Program Files (x86)/Embarcadero/Dev-Cpp/TDM-GCC-64/x86_64-w64-mingw32/lib/libwinmm.a.
3. Вот код main.c:
#define VIDEO_ID "my_video" #include <windows.h> HWND hwndButton; HWND hwndStatic; char buf[1000]; LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) { switch(Message) { case WM_COMMAND: sprintf(buf, "play %s", VIDEO_ID); mciSendString(buf, NULL, 0, 0); break; case WM_CREATE: hwndButton = CreateWindow("BUTTON", "Play", WS_CHILD | WS_VISIBLE, 10, 10, 100, 20, hwnd, (HMENU)NULL, NULL, lParam); hwndStatic = CreateWindow("STATIC", "", WS_CHILD | WS_VISIBLE, 10, 40, 800, 600, hwnd, (HMENU)NULL, NULL, lParam); sprintf(buf, "open \"movie.avi\" type MPEGVideo alias %s parent %ld style child", VIDEO_ID, (long)hwndStatic); mciSendString(buf, NULL, 0, 0); sprintf(buf, "put %s window at 10 10 320 240 225", VIDEO_ID); mciSendString(buf, NULL, 0, 0); break; case WM_DESTROY: { PostQuitMessage(0); break; } default: return DefWindowProc(hwnd, Message, wParam, lParam); } return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASSEX wc; HWND hwnd; MSG msg; memset(&wc,0,sizeof(wc)); wc.cbSize = sizeof(WNDCLASSEX); wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.lpszClassName = "usw82_simple_media_player"; wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION); if(!RegisterClassEx(&wc)) { MessageBox(NULL, "Window Registration Failed!","Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,"usw82_simple_media_player", "Simple Media Player", WS_VISIBLE | WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 840, 698, NULL, NULL, hInstance, NULL); if(hwnd == NULL) { MessageBox(NULL, "Window Creation Failed!","Error!", MB_ICONEXCLAMATION | MB_OK); return 0; } while(GetMessage(&msg, NULL, 0, 0) > 0) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; }
4. Вуаля! Вот наш проигрыватель, он проигрывает видео т.е. avi-файл. Это видео я сам делал в программе Blender 2.79.
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение