Adicionando funções de retorno de chamada a um aplicativo
Um aplicativo pode registrar funções de retorno de chamada com a janela de captura para que ele notifique o aplicativo nas seguintes circunstâncias:
- O status é alterado
- Erros ocorrem
- Buffers de áudio e quadro de vídeo ficam disponíveis
- O aplicativo deve produzir durante a captura de streaming
O exemplo a seguir cria uma janela de captura e registra status, erros, fluxo de vídeo e funções de retorno de chamada de quadro no loop de processamento de mensagens de um aplicativo. Ele também inclui uma instrução de exemplo para desabilitar uma função de retorno de chamada. Exemplos subsequentes mostram status simples, erros e funções de retorno de chamada de quadro.
case WM_CREATE:
{
char achDeviceName[80] ;
char achDeviceVersion[100] ;
char achBuffer[100] ;
WORD wDriverCount = 0 ;
WORD wIndex ;
WORD wError ;
HMENU hMenu ;
// Create a capture window using the capCreateCaptureWindow macro.
ghWndCap = capCreateCaptureWindow((LPSTR)"Capture Window",
WS_CHILD | WS_VISIBLE, 0, 0, 160, 120, (HWND) hWnd, (int) 0);
// Register the error callback function using the
// capSetCallbackOnError macro.
capSetCallbackOnError(ghWndCap, fpErrorCallback);
// Register the status callback function using the
// capSetCallbackOnStatus macro.
capSetCallbackOnStatus(ghWndCap, fpStatusCallback);
// Register the video-stream callback function using the
// capSetCallbackOnVideoStream macro.
capSetCallbackOnVideoStream(ghWndCap, fpVideoCallback);
// Register the frame callback function using the
// capSetCallbackOnFrame macro.
capSetCallbackOnFrame(ghWndCap, fpFrameCallback);
// Connect to a capture driver
break;
}
case WM_CLOSE:
{
// Use the capSetCallbackOnFrame macro to
// disable the frame callback. Similar calls exist for the other
// callback functions.
capSetCallbackOnFrame(ghWndCap, NULL);
break;
}
Tópicos relacionados