diff --git a/src/Rtsp/RtspPlayer.cpp b/src/Rtsp/RtspPlayer.cpp index b55c7909..c1b668f7 100644 --- a/src/Rtsp/RtspPlayer.cpp +++ b/src/Rtsp/RtspPlayer.cpp @@ -446,7 +446,11 @@ void RtspPlayer::sendOptions() { } void RtspPlayer::sendKeepAlive() { - _on_response = [](const Parser &parser) {}; + if (_play_check_timer) + { + WarnL << "receive RTP packet before handleResPAUSE"; + } + _on_keepalive_reponse = [](const Parser &parser) {}; if (_supported_cmd.find("GET_PARAMETER") != _supported_cmd.end()) { // 支持GET_PARAMETER,用此命令保活 [AUTO-TRANSLATED:b45cd737] // Support GET_PARAMETER, use this command to keep alive @@ -532,6 +536,10 @@ void RtspPlayer::onWholeRtspPacket(Parser &parser) { try { decltype(_on_response) func; _on_response.swap(func); + if (!func) + { + _on_keepalive_reponse.swap(func); + } if (func) { func(parser); } diff --git a/src/Rtsp/RtspPlayer.h b/src/Rtsp/RtspPlayer.h index 909d39b4..9c98714e 100644 --- a/src/Rtsp/RtspPlayer.h +++ b/src/Rtsp/RtspPlayer.h @@ -162,6 +162,7 @@ private: float _speed = 0.0f; std::vector _sdp_track; std::function _on_response; + std::function _on_keepalive_reponse; protected: // RTP端口,trackid idx 为数组下标 [AUTO-TRANSLATED:77c186bb] // RTP port, trackid idx is the array subscript