2010-05-17 11 views

답변

2

live555 API의 동기식 및 비동기식의 주된 차이점은 이제 RTSP 요청에서 처리기를 지정해야한다는 것입니다. DESCRIBE 요청이 완료되면 처리기가 live555 이벤트 루프에서 호출됩니다.

RTSPClient.hh하는 ResponseHandler에서

는 다음과 같이 정의된다 :

핸들러가 호출
typedef void (responseHandler)(RTSPClient* rtspClient, 
      int resultCode, char* resultString); 

, live555는 당신에게 다음과 같은 정보를 제공합니다 :

  • 명령이 발행 된 RTSP 클라이언트 -> 그러면 다음 RTSP 메소드를 호출 할 수 있습니다.

  • 결과 코드는 성공시 0이고, RTSP 오류 코드가 서버에 의해 반환되면 긍정적이며, 일부 네트워크/소켓 오류가 발생하면 음수입니다.

처리기를 계속 진행하는 방법을 결정하려면이 정보를 사용하십시오. 이 모든 것이 설명 된 RTSPClient.hh를 살펴보십시오.

예. 당신은 완료 한 DESCRIBE 한 번 호출됩니다 (서명 ResponseHandler에의) 어떤 핸들러를 지정해야합니다

unsigned sendDescribeCommand(responseHandler* responseHandler, 
     Authenticator* authenticator = NULL); 

: 이것은 당신이 원하는 때 sendDescribeCommand 메소드를 호출하는 것을 의미한다. 그런 다음 핸들러에서 결과 코드를 기반으로 SETUP (다시 핸들러 지정) 또는 종료 (오류가 발생한 경우) 중 어느 것을 수행할지 결정해야합니다.

jenseb가 제안한 것처럼 openRTSP 클라이언트는 매우 좋은 출발점을 제공합니다.