【问题标题】:live555 asynchronous rtsp client [closed]live555异步rtsp客户端[关闭]
【发布时间】:2010-05-17 04:46:39
【问题描述】:

是否有人设法让 live555 rtsp 客户端异步工作并希望分享知识或更好的...代码。

【问题讨论】:

    标签: c++ media voip live555 rtsp-client


    【解决方案1】:

    live555 API 中同步和异步的主要区别在于您现在必须在 RTSP 请求中指定处理程序。一旦 DESCRIBE 请求完成,您的处理程序将从 live555 事件循环中调用。

    在 RTSPClient.hh responseHandler 中定义为:

    typedef void (responseHandler)(RTSPClient* rtspClient,
                 int resultCode, char* resultString);
    

    当你的处理程序被调用时,live555 会给你以下信息:

    • 发出命令的 RTSP 客户端 -> 这允许您随后调用下一个 RTSP 方法。

    • 成功时为 0 的结果代码,如果服务器返回 RTSP 错误代码则为正,如果发生网络/套接字错误则为负。

    使用此信息来决定如何在您的处理程序中进行。请查看 RTSPClient.hh,其中解释了所有这些内容。

    例如这意味着当你想调用 sendDescribeCommand 方法时:

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

    您必须指定在 DESCRIBE 完成后将调用哪个处理程序(签名 responseHandler)。在您的处理程序中,您必须根据结果代码决定是执行 SETUP(再次指定处理程序)还是终止(如果发生错误)。

    正如 jenseb 建议的那样,openRTSP 客户端提供了一个非常好的起点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 2014-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-14
      相关资源
      最近更新 更多