From 2dd87c8b59508c6a99833d4994eed11a115f2f31 Mon Sep 17 00:00:00 2001 From: xiongziliang <771730766@qq.com> Date: Sun, 17 Jan 2021 10:22:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=9B=B4=E6=8E=A5=E6=8B=89?= =?UTF-8?q?=E6=B5=81=E4=BB=A3=E7=90=86=E5=A4=B1=E6=95=88=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Player/PlayerProxy.cpp | 14 +++++++++----- src/Player/PlayerProxy.h | 1 + 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Player/PlayerProxy.cpp b/src/Player/PlayerProxy.cpp index ee81e952..c6e73a40 100644 --- a/src/Player/PlayerProxy.cpp +++ b/src/Player/PlayerProxy.cpp @@ -117,19 +117,22 @@ void PlayerProxy::play(const string &strUrlTmp) { }); MediaPlayer::play(strUrlTmp); _pull_url = strUrlTmp; + setDirectProxy(); +} +void PlayerProxy::setDirectProxy(){ MediaSource::Ptr mediaSource; - if(dynamic_pointer_cast(_delegate)){ + if (dynamic_pointer_cast(_delegate)) { //rtsp拉流 - GET_CONFIG(bool,directProxy,Rtsp::kDirectProxy); - if(directProxy){ + GET_CONFIG(bool, directProxy, Rtsp::kDirectProxy); + if (directProxy) { mediaSource = std::make_shared(_vhost, _app, _stream_id); } - } else if(dynamic_pointer_cast(_delegate)){ + } else if (dynamic_pointer_cast(_delegate)) { //rtmp拉流,rtmp强制直接代理 mediaSource = std::make_shared(_vhost, _app, _stream_id); } - if(mediaSource){ + if (mediaSource) { setMediaSource(mediaSource); mediaSource->setListener(shared_from_this()); } @@ -150,6 +153,7 @@ void PlayerProxy::rePlay(const string &strUrl,int iFailedCnt){ } WarnL << "重试播放[" << iFailedCnt << "]:" << strUrl; strongPlayer->MediaPlayer::play(strUrl); + strongPlayer->setDirectProxy(); return false; }, getPoller()); } diff --git a/src/Player/PlayerProxy.h b/src/Player/PlayerProxy.h index dbb87001..bdd57f23 100644 --- a/src/Player/PlayerProxy.h +++ b/src/Player/PlayerProxy.h @@ -65,6 +65,7 @@ private: void rePlay(const string &strUrl,int iFailedCnt); void onPlaySuccess(); + void setDirectProxy(); private: bool _enable_hls;