русский

Воспоминание мультимедия 18.02.2025

3 Tage zurück, 13:03
Re: Воспоминание мультимедия 18.02.2025
 
uscheswoi_82 патриот
in Antwort uscheswoi_82 3 Tage zurück, 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.



Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
 

Sprung zu